diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-12-29 11:37:34 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-01-05 11:33:16 -0300 |
commit | c6e0b0b5b0b7922cdf0dce2af671e0c7e500df95 (patch) | |
tree | 01d0121e7f7492d2710a4d13c773cf8669315759 /sysdeps | |
parent | 448a256359e951fd2e81ccb2926e3f2b1d7a09de (diff) | |
download | glibc-c6e0b0b5b0b7922cdf0dce2af671e0c7e500df95.tar glibc-c6e0b0b5b0b7922cdf0dce2af671e0c7e500df95.tar.gz glibc-c6e0b0b5b0b7922cdf0dce2af671e0c7e500df95.tar.bz2 glibc-c6e0b0b5b0b7922cdf0dce2af671e0c7e500df95.zip |
stdlib: Sync canonicalize with gnulib [BZ #10635] [BZ #26592] [BZ #26341] [BZ #24970]
It sync with gnulib version ae9fb3d66. The testcase for BZ#23741
(stdlib/test-bz22786.c) is adjusted to check also for ENOMEM.
The patch fixes multiple realpath issues:
- Portability fixes for errno clobbering on free (BZ#10635). The
function does not call free directly anymore, although it might be
done through scratch_buffer_free. The free errno clobbering is
being tracked by BZ#17924.
- Pointer arithmetic overflows in realpath (BZ#26592).
- Realpath cyclically call __alloca(path_max) to consume too much
stack space (BZ#26341).
- Realpath mishandles EOVERFLOW; stat not needed anyway (BZ#24970).
The check is done through faccessat now.
Checked on x86_64-linux-gnu and i686-linux-gnu.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/faccessat.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c index ccf559ccf8..13160d3249 100644 --- a/sysdeps/unix/sysv/linux/faccessat.c +++ b/sysdeps/unix/sysv/linux/faccessat.c @@ -24,7 +24,7 @@ int -faccessat (int fd, const char *file, int mode, int flag) +__faccessat (int fd, const char *file, int mode, int flag) { int ret = INLINE_SYSCALL_CALL (faccessat2, fd, file, mode, flag); #if __ASSUME_FACCESSAT2 @@ -73,3 +73,4 @@ faccessat (int fd, const char *file, int mode, int flag) return INLINE_SYSCALL_ERROR_RETURN_VALUE (EACCES); #endif /* !__ASSUME_FACCESSAT2 */ } +weak_alias (__faccessat, faccessat) |