1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 22:48:11 +00:00
serenity/Libraries/LibC
Sergey Bugaev 47d83800e1 Kernel+LibC: Do not return -ENAMETOOLONG from sys$readlink()
That's not how readlink() is supposed to work: it should copy as many bytes
as fit into the buffer, and return the number of bytes copied. So do that,
but add a twist: make sys$readlink() actually return the whole size, not
the number of bytes copied. We fix up this return value in userspace, to make
LibC's readlink() behave as expected, but this will also allow other code
to allocate a buffer of just the right size.

Also, avoid an extra copy of the link target.
2020-06-17 15:02:03 +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 Revert "LibC: Implement Itanium C++ ABI for static variable guards" 2020-05-20 16:24:26 +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 LibC: Rewrite getopt() 2020-05-30 15:01:18 +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
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: Do not return -ENAMETOOLONG from sys$readlink() 2020-06-17 15:02:03 +02:00
unistd.h LibC: Add truncate(). 2020-06-15 17:34:52 +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