mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 06:53:33 +00:00
Fix pledge rpath support for old getdents syscall (#804)
The rpath pledge as currently implemented in cosmopolitan does not allow for usage of the old getdents syscall (0x4e), which is different from the newer getdents syscall (0xd9) solely in that it does not support 64-bit filesystems. This means that, for example, old statically linked binaries cannot use `readdir` and other such functions which use this syscall instead of the more modern one, even though there is no threat in allowing that syscall alongside the more modern one (except that the binary may have issues with 64-bit filesystems, but that's a separate problem). This patch fixes this.
This commit is contained in:
parent
6758c3f400
commit
f7bccf5513
2 changed files with 3 additions and 0 deletions
|
@ -292,6 +292,7 @@ static const struct thatispacked SyscallName {
|
|||
{__NR_linux_epoll_wait, "epoll_wait"}, //
|
||||
{__NR_linux_epoll_ctl, "epoll_ctl"}, //
|
||||
{__NR_linux_getdents, "getdents"}, //
|
||||
{__NR_linux_oldgetdents, "oldgetdents"}, //
|
||||
{__NR_linux_set_tid_address, "set_tid_address"}, //
|
||||
{__NR_linux_restart_syscall, "restart_syscall"}, //
|
||||
{__NR_linux_semtimedop, "semtimedop"}, //
|
||||
|
@ -582,6 +583,7 @@ static const uint16_t kPledgeRpath[] = {
|
|||
__NR_linux_statfs, //
|
||||
__NR_linux_fstatfs, //
|
||||
__NR_linux_getdents, //
|
||||
__NR_linux_oldgetdents, //
|
||||
};
|
||||
|
||||
static const uint16_t kPledgeWpath[] = {
|
||||
|
|
|
@ -209,6 +209,7 @@
|
|||
#define __NR_linux_epoll_wait 0x00e8
|
||||
#define __NR_linux_epoll_ctl 0x00e9
|
||||
#define __NR_linux_getdents 0x00d9
|
||||
#define __NR_linux_oldgetdents 0x004e
|
||||
#define __NR_linux_set_tid_address 0x00da
|
||||
#define __NR_linux_restart_syscall 0x00db
|
||||
#define __NR_linux_semtimedop 0x00dc
|
||||
|
|
Loading…
Reference in a new issue