mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
elf: Also parse gnu properties for static linked binaries
So the static binary can opt-out of memory sealing. Checked on x86_64-linux-gnu.
This commit is contained in:
parent
6a785f1dcf
commit
8d2a331b64
@ -45,6 +45,7 @@
|
||||
#include <dl-find_object.h>
|
||||
#include <array_length.h>
|
||||
#include <dl-symbol-redir-ifunc.h>
|
||||
#include <dl-prop.h>
|
||||
#include <dl-mseal.h>
|
||||
|
||||
extern char *__progname;
|
||||
@ -336,6 +337,18 @@ _dl_non_dynamic_init (void)
|
||||
_dl_main_map.l_relro_size = ph->p_memsz;
|
||||
break;
|
||||
}
|
||||
/* Process program headers again, but scan them backwards so
|
||||
that PT_NOTE can be skipped if PT_GNU_PROPERTY exits. */
|
||||
for (const ElfW(Phdr) *ph = &_dl_phdr[_dl_phnum]; ph != _dl_phdr; --ph)
|
||||
switch (ph[-1].p_type)
|
||||
{
|
||||
case PT_NOTE:
|
||||
_dl_process_pt_note (&_dl_main_map, -1, &ph[-1]);
|
||||
break;
|
||||
case PT_GNU_PROPERTY:
|
||||
_dl_process_pt_gnu_property (&_dl_main_map, -1, &ph[-1]);
|
||||
break;
|
||||
}
|
||||
|
||||
call_function_static_weak (_dl_find_object_init);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user