Add fexecve() and map O_EXEC to O_PATH on Linux

This commit is contained in:
Justine Tunney 2022-10-02 08:30:39 -07:00
parent 6c60793f3a
commit acd8900071
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
9 changed files with 161 additions and 5 deletions

View file

@ -0,0 +1,2 @@
.include "o/libc/sysv/macros.internal.inc"
.scall sys_fexecve,0xffffff1ecfffffff,globl,hidden

View file

@ -204,7 +204,7 @@ syscon open O_NOFOLLOW_ANY 0 0x20000000 0 0 0 0 #
syscon open O_SYNC 0x00101000 0x00000080 0x00000080 0x00000080 0x00000080 0 # bsd consensus
syscon open O_NOCTTY 0x00000100 0x00020000 0x00008000 0x00008000 0x00008000 0 # used for remote viewing (default behavior on freebsd)
syscon open O_NOATIME 0x00040000 0 0 0 0 0 # optimize away access time update
syscon open O_EXEC 0 0 0x00040000 0 0x04000000 0 # it's specified by posix what does it mean
syscon open O_EXEC 0x00200000 0 0x00040000 0 0x04000000 0 # open only for executing (POSIX.1 hack for when file mode is 0111); see fexecve(); O_PATH on Linux
syscon open O_SEARCH 0 0 0x00040000 0 0x00800000 0 # it's specified by posix what does it mean
syscon open O_DSYNC 0x00001000 0x00400000 0 0x00000080 0x00010000 0 #
syscon open O_RSYNC 0x00101000 0 0 0x00000080 0x00020000 0 #

View file

@ -1,2 +1,2 @@
.include "o/libc/sysv/consts/syscon.internal.inc"
.syscon open,O_EXEC,0,0,0x00040000,0,0x04000000,0
.syscon open,O_EXEC,0x00200000,0,0x00040000,0,0x04000000,0

View file

@ -673,7 +673,7 @@ scall sys_bsdthread_register 0xfffffffff216efff globl hidden
#scall extattr_set_file 0x169fff164fffffff globl
#scall extattr_set_link 0x16ffff19cfffffff globl
#scall extattrctl 0x168fff163fffffff globl
#scall fexecve 0x1d1fff1ecfffffff globl
scall sys_fexecve 0xffffff1ecfffffff globl hidden
#scall ffclock_getcounter 0xffffff0f1fffffff globl
#scall ffclock_getestimate 0xffffff0f3fffffff globl
#scall ffclock_setestimate 0xffffff0f2fffffff globl