diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | elf/Makefile | 9 | ||||
-rw-r--r-- | elf/tst-big-note-lib.S | 10 |
3 files changed, 23 insertions, 4 deletions
@@ -1,3 +1,11 @@ +2019-03-01 Florian Weimer <fweimer@redhat.com> + + [BZ #20419] + * elf/tst-big-note-lib.S: Create a syntactically valid note. + * elf/Makefile (tst-big-note-lib.so): Do not link with startup + code, to avoid creating an ABI tag note. + (modules-names-nobuild): Add tst-big-note-lib. + 2019-03-01 Stefan Liebler <stli@linux.ibm.com> * sysdeps/s390/wcscpy-vx.S: Add strong aliases to diff --git a/elf/Makefile b/elf/Makefile index 5520407..310a37c 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -316,8 +316,8 @@ endif modules-execstack-yes = tst-execstack-mod extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) -# filtmod1.so has a special rule -modules-names-nobuild := filtmod1 +# filtmod1.so, tst-big-note-lib.so have special rules. +modules-names-nobuild := filtmod1 tst-big-note-lib tests += $(tests-static) @@ -1515,6 +1515,11 @@ tst-libc_dlvsym-static-ENV = \ $(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so $(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so +# Avoid creating an ABI tag note, which may come before the +# artificial, large note in tst-big-note-lib.o and invalidate the +# test. +$(objpfx)tst-big-note-lib.so: $(objpfx)tst-big-note-lib.o + $(LINK.o) -shared -o $@ $(LDFLAGS.so) $< $(objpfx)tst-unwind-ctor: $(objpfx)tst-unwind-ctor-lib.so diff --git a/elf/tst-big-note-lib.S b/elf/tst-big-note-lib.S index e2008cf..721686f 100644 --- a/elf/tst-big-note-lib.S +++ b/elf/tst-big-note-lib.S @@ -20,7 +20,13 @@ On a typical Linux system with 8MiB "ulimit -s", that was enough to trigger stack overflow in open_verify. */ +#define NOTE_SIZE 8*1024*1024 + .pushsection .note.big,"a" -.balign 4 -.fill 8*1024*1024, 1, 0 + .balign 4 + .long 5 /* n_namesz. Length of "GLIBC". */ + .long NOTE_SIZE /* n_descsz. */ + .long 0 /* n_type. */ + .ascii "GLIBC\0\0\0" /* Name and alignment to four bytes. */ + .fill NOTE_SIZE, 1, 0 .popsection |