diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2022-01-13 11:28:36 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2022-01-21 23:01:30 +0530 |
commit | ee8d5e33adb284601c00c94687bc907e10aec9bb (patch) | |
tree | c1e3b5584266640b915abcbd151032935b9695fb /stdlib/Makefile | |
parent | fb7bff12e81c677a6622f724edd4d4987dd9d971 (diff) | |
download | glibc-ee8d5e33adb284601c00c94687bc907e10aec9bb.tar.gz glibc-ee8d5e33adb284601c00c94687bc907e10aec9bb.tar.xz glibc-ee8d5e33adb284601c00c94687bc907e10aec9bb.zip |
realpath: Set errno to ENAMETOOLONG for result larger than PATH_MAX [BZ #28770]
realpath returns an allocated string when the result exceeds PATH_MAX, which is unexpected when its second argument is not NULL. This results in the second argument (resolved) being uninitialized and also results in a memory leak since the caller expects resolved to be the same as the returned value. Return NULL and set errno to ENAMETOOLONG if the result exceeds PATH_MAX. This fixes [BZ #28770], which is CVE-2021-3998. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'stdlib/Makefile')
-rw-r--r-- | stdlib/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/stdlib/Makefile b/stdlib/Makefile index 1e81f98fac..8236741984 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -109,6 +109,7 @@ tests := \ tst-random \ tst-random2 \ tst-realpath \ + tst-realpath-toolong \ tst-secure-getenv \ tst-setcontext \ tst-setcontext2 \ |