aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorVolker Weißmann <volker.weissmann@gmx.de>2023-10-03 19:18:44 +0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2023-10-04 08:07:43 -0300
commit7bb8045ec0595a031e68383849c3fbd9af134312 (patch)
treeaf7b46bcd825f046599063cdc17aa9d6f0e2b1ba /sysdeps
parent751850cf5a87e463f0f8b508672594e54853495c (diff)
downloadglibc-7bb8045ec0595a031e68383849c3fbd9af134312.zip
glibc-7bb8045ec0595a031e68383849c3fbd9af134312.tar.gz
glibc-7bb8045ec0595a031e68383849c3fbd9af134312.tar.bz2
Fix FORTIFY_SOURCE false positive
When -D_FORTIFY_SOURCE=2 was given during compilation, sprintf and similar functions will check if their first argument is in read-only memory and exit with *** %n in writable segment detected *** otherwise. To check if the memory is read-only, glibc reads frpm the file "/proc/self/maps". If opening this file fails due to too many open files (EMFILE), glibc will now ignore this error. Fixes [BZ #30932] Signed-off-by: Volker Weißmann <volker.weissmann@gmx.de> Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/readonly-area.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c
index edc6887..ba32372 100644
--- a/sysdeps/unix/sysv/linux/readonly-area.c
+++ b/sysdeps/unix/sysv/linux/readonly-area.c
@@ -42,7 +42,9 @@ __readonly_area (const char *ptr, size_t size)
to the /proc filesystem if it is set[ug]id. There has
been no willingness to change this in the kernel so
far. */
- || errno == EACCES)
+ || errno == EACCES
+ /* Process has reached the maximum number of open files. */
+ || errno == EMFILE)
return 1;
return -1;
}