mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Simplify note processing
This removes dead code during note processing.
This commit is contained in:
parent
e027ddeff6
commit
8a3ca0fdd3
@ -1,3 +1,7 @@
|
|||||||
|
2019-10-10 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
* elf/dl-load.c (open_verify): Remove dead code.
|
||||||
|
|
||||||
2019-10-10 Dmitry V. Levin <ldv@altlinux.org>
|
2019-10-10 Dmitry V. Levin <ldv@altlinux.org>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/syscall-names.list: Fix typos in comment,
|
* sysdeps/unix/sysv/linux/syscall-names.list: Fix typos in comment,
|
||||||
|
@ -1682,21 +1682,10 @@ open_verify (const char *name, int fd,
|
|||||||
|
|
||||||
/* Check .note.ABI-tag if present. */
|
/* Check .note.ABI-tag if present. */
|
||||||
for (ph = phdr; ph < &phdr[ehdr->e_phnum]; ++ph)
|
for (ph = phdr; ph < &phdr[ehdr->e_phnum]; ++ph)
|
||||||
if (ph->p_type == PT_NOTE && ph->p_filesz >= 32 && ph->p_align >= 4)
|
if (ph->p_type == PT_NOTE && ph->p_filesz >= 32
|
||||||
|
&& (ph->p_align == 4 || ph->p_align == 8))
|
||||||
{
|
{
|
||||||
ElfW(Addr) size = ph->p_filesz;
|
ElfW(Addr) size = ph->p_filesz;
|
||||||
/* NB: Some PT_NOTE segment may have alignment value of 0
|
|
||||||
or 1. gABI specifies that PT_NOTE segments should be
|
|
||||||
aligned to 4 bytes in 32-bit objects and to 8 bytes in
|
|
||||||
64-bit objects. As a Linux extension, we also support
|
|
||||||
4 byte alignment in 64-bit objects. If p_align is less
|
|
||||||
than 4, we treate alignment as 4 bytes since some note
|
|
||||||
segments have 0 or 1 byte alignment. */
|
|
||||||
ElfW(Addr) align = ph->p_align;
|
|
||||||
if (align < 4)
|
|
||||||
align = 4;
|
|
||||||
else if (align != 4 && align != 8)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (ph->p_offset + size <= (size_t) fbp->len)
|
if (ph->p_offset + size <= (size_t) fbp->len)
|
||||||
abi_note = (void *) (fbp->buf + ph->p_offset);
|
abi_note = (void *) (fbp->buf + ph->p_offset);
|
||||||
@ -1727,7 +1716,7 @@ open_verify (const char *name, int fd,
|
|||||||
{
|
{
|
||||||
ElfW(Addr) note_size
|
ElfW(Addr) note_size
|
||||||
= ELF_NOTE_NEXT_OFFSET (abi_note[0], abi_note[1],
|
= ELF_NOTE_NEXT_OFFSET (abi_note[0], abi_note[1],
|
||||||
align);
|
ph->p_align);
|
||||||
|
|
||||||
if (size - 32 < note_size)
|
if (size - 32 < note_size)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user