aboutsummaryrefslogtreecommitdiff
path: root/libio/Makefile
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2024-09-07 08:32:32 -0700
committerH.J. Lu <hjl.tools@gmail.com>2024-10-01 07:31:25 +0800
commit9dfea3de7f690bff70e3c6eb346b9ad082bb2e35 (patch)
treea49afb7e040976036fcde8ee50c76703b504a554 /libio/Makefile
parent97aa92263a151d12286d27d327edc35475fe521c (diff)
downloadglibc-9dfea3de7f690bff70e3c6eb346b9ad082bb2e35.tar.xz
glibc-9dfea3de7f690bff70e3c6eb346b9ad082bb2e35.zip
libio: Set _vtable_offset before calling _IO_link_in [BZ #32148]
Since _IO_vtable_offset is used to detect the old binaries, set it in _IO_old_file_init_internal before calling _IO_link_in which checks _IO_vtable_offset. Add a glibc 2.0 test with copy relocation on _IO_stderr_@GLIBC_2.0 to verify that fopen won't cause memory corruption. This fixes BZ #32148. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
Diffstat (limited to 'libio/Makefile')
-rw-r--r--libio/Makefile7
1 files changed, 7 insertions, 0 deletions
diff --git a/libio/Makefile b/libio/Makefile
index ae90e343ad..ae704d8767 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -293,11 +293,18 @@ endif
ifeq ($(build-shared),yes)
aux += oldfileops oldstdfiles
tests += \
+ tst-fopen-compat \
tst-stderr-compat \
# tests
tests-2.0 += \
+ tst-fopen-compat \
tst-stderr-compat \
# tests-2.0
+
+tst-fopen-compat-ARGS = tst-fopen-compat.c
+# Disable PIE to trigger copy relocation.
+CFLAGS-tst-fopen-compat.c += -fno-pie
+tst-fopen-compat-no-pie = yes
endif
shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \