1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:28:12 +00:00
serenity/Libraries/LibC
Nico Weber a38754d9f2 Kernel+LibC: Implement seteuid() and friends!
Add seteuid()/setegid() under _POSIX_SAVED_IDS semantics,
which also requires adding suid and sgid to Process, and
changing setuid()/setgid() to honor these semantics.

The exact semantics aren't specified by POSIX and differ
between different Unix implementations. This patch makes
serenity follow FreeBSD. The 2002 USENIX paper
"Setuid Demystified" explains the differences well.

In addition to seteuid() and setegid() this also adds
setreuid()/setregid() and setresuid()/setresgid(), and
the accessors getresuid()/getresgid().

Also reorder uid/euid functions so that they are the
same order everywhere (namely, the order that
geteuid()/getuid() already have).
2020-06-18 23:19:16 +02:00
..
arpa LibC: Add inet_aton, based on inet_pton 2020-05-11 09:50:42 +02:00
bits Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
net Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
netinet LibC: Add IPPORT_RESERVED and IPPORT_USERRESERVED 2020-06-08 21:50:45 +02:00
sys LibC: Add ws_xpixel and ws_ypixel members to struct winsize 2020-06-08 21:40:22 +02:00
alloca.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
assert.cpp LibC: Remove endless loop after abort() call 2020-05-26 14:35:10 +02:00
assert.h AK+LibC: Add TODO() as an alternative to ASSERT_NOT_REACHED() 2020-05-30 11:31:49 +02:00
byteswap.h Meta: Add missing copyright headers 2020-04-06 11:09:01 +02:00
CMakeLists.txt LibC: Add posix_spawn()! 2020-06-17 18:49:06 +02:00
crt0.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
crti.S Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
crtn.S Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
ctype.cpp Revert "LibC: Implement isblank()" 2020-02-16 10:47:54 +01:00
ctype.h LibC: Don't let ctype isfoo() helpers access array out of bounds 2020-05-17 22:35:25 +02:00
cxxabi.cpp Revert "LibC: Implement Itanium C++ ABI for static variable guards" 2020-05-20 16:24:26 +02:00
dirent.cpp Kernel+LibC: Fix various build issues introduced by ssize_t 2020-05-23 15:27:33 +02:00
dirent.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
dlfcn.cpp AK: Rename FileSystemPath -> LexicalPath 2020-05-26 14:35:10 +02:00
dlfcn.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
endian.h LibC: Fix big endian definitions 2020-02-19 16:08:28 +01:00
errno.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
errno_numbers.h Kernel+LibC: Remove ESUCCESS 2020-04-10 13:09:35 +02:00
fcntl.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
fcntl.h Kernel+LibC: Switch isatty() to use a fcntl() 2020-05-20 08:31:31 +02:00
fd_set.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
float.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
getopt.cpp Meta: Scale back overly informal user-facing strings 2020-06-17 18:35:49 +02:00
getopt.h LibC: Rewrite getopt() 2020-05-30 15:01:18 +02:00
grp.cpp AK: Make string-to-number conversion helpers return Optional 2020-06-12 21:28:55 +02:00
grp.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
iconv.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
inttypes.h LibC: Add some missing macros to inttypes.h 2020-02-20 06:51:16 +01:00
ioctl.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
libcinit.cpp LibWeb: Move everything into the Web namespace 2020-03-07 10:27:02 +01:00
libgen.cpp Meta: Claim copyright for files created by me 2020-01-24 15:15:16 +01:00
libgen.h Meta: Claim copyright for files created by me 2020-01-24 15:15:16 +01:00
limits.h LibC: Use more flexible digit parsing code, deduplicate 2020-05-11 10:52:24 +02:00
locale.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
locale.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
malloc.cpp Revert "AK+LibC: Move non-placement new/delete into LibC" 2020-05-20 16:24:26 +02:00
mallocdefs.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
memory.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
mman.cpp Kernel+LibC: Add minherit() and MAP_INHERIT_ZERO 2020-04-12 20:22:26 +02:00
mman.h Kernel+LibC: Add minherit() and MAP_INHERIT_ZERO 2020-04-12 20:22:26 +02:00
mntent.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
mntent.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
netdb.cpp AK: Make string-to-number conversion helpers return Optional 2020-06-12 21:28:55 +02:00
netdb.h LibC: getprotoent() family of functions 2020-04-18 10:11:55 +02:00
poll.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
poll.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
pwd.cpp AK: Make string-to-number conversion helpers return Optional 2020-06-12 21:28:55 +02:00
pwd.h LibC: Implement putpwent() 2020-02-02 10:58:45 +01:00
qsort.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
scanf.cpp LibC: Some build fixes for strange platforms 2019-09-29 21:02:13 +02:00
sched.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
sched.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
serenity.cpp Kernel: Add sys$get_stack_bounds() for finding the stack base & size 2020-03-16 19:06:33 +01:00
serenity.h Kernel: Add sys$get_stack_bounds() for finding the stack base & size 2020-03-16 19:06:33 +01:00
setjmp.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
setjmp.S Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
signal.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
signal.h LibC: Declare pthread_sigmask() in signal.h. 2020-06-16 09:34:00 +02:00
signal_numbers.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
spawn.cpp LibC: Add posix_spawn()! 2020-06-17 18:49:06 +02:00
spawn.h LibC: Add posix_spawn()! 2020-06-17 18:49:06 +02:00
stat.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
stdarg.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
stdbool.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
stddef.h LibC: Move ssize_t from <stddef.h> to <sys/types.h> 2020-05-23 17:03:41 +02:00
stdint.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
stdio.cpp LibC: Don't assert on unknown mode character in fopen() 2020-06-08 21:57:13 +02:00
stdio.h Kernel+LibC: Fix various build issues introduced by ssize_t 2020-05-23 15:27:33 +02:00
stdlib.cpp LibC: Ensure abort() doesn't return 2020-05-26 14:35:10 +02:00
stdlib.h LibC: Add posix_openpt(), grantpt() and unlockpt() 2020-02-05 21:17:41 +01:00
string.cpp LibC: Implement strchrnul() 2020-02-22 21:36:54 +01:00
string.h LibC: Implement strchrnul() 2020-02-22 21:36:54 +01:00
strings.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
strings.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
syslog.cpp AK: Add a forward declaration header 2020-02-14 23:31:18 +01:00
syslog.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
termcap.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
termcap.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
termios.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
termios.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
time.cpp LibC: Add nanosleep() wrapper around clock_nanosleep(CLOCK_REALTIME) 2020-06-08 21:53:41 +02:00
time.h LibC: Add nanosleep() wrapper around clock_nanosleep(CLOCK_REALTIME) 2020-06-08 21:53:41 +02:00
times.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
ulimit.cpp LibC: Log calls to getrusage 2020-05-07 23:32:11 +02:00
ulimit.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
unistd.cpp Kernel+LibC: Implement seteuid() and friends! 2020-06-18 23:19:16 +02:00
unistd.h Kernel+LibC: Implement seteuid() and friends! 2020-06-18 23:19:16 +02:00
utime.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
utime.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
utmp.h LibC: Add missing <sys/time.h> include in <utmp.h> 2020-05-11 09:50:42 +02:00
utsname.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
wchar.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
wchar.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00