This commit causes hundreds of core file regressions in gdb:
authorKeith Seitz <keiths@redhat.com>
Thu, 11 Dec 2014 17:39:24 +0000 (09:39 -0800)
committerKeith Seitz <keiths@redhat.com>
Thu, 11 Dec 2014 17:39:24 +0000 (09:39 -0800)
commit8acbedd60e1045bf8d37b29ddd25c2c8b6a302a9
treeb516494013526189e636fc8a4eb306a0c6af029e
parent540feddfde2c93f242e6f54be5feb641f263c5f3
This commit causes hundreds of core file regressions in gdb:

commit f64e188b58f4aab4cbd03aa6e9fc1aa602546e26
Author: Nick Clifton <nickc@redhat.com>
Date:   Tue Dec 9 12:42:18 2014 +0000

    More fixes for memory access violations triggered by fuzzed binaries.
    [snip]
        * elf.c (elf_parse_notes): Check that the namedata is long enough
        for the string comparison that is about to be performed.
        (elf_read_notes): Zero-terminate the note buffer.

This change to elf_parse_notes is the culprit:

+           for (i = ARRAY_SIZE (grokers); i--;)
+             if (in.namesz >= sizeof grokers[i].string - 1
+                 && strncmp (in.namedata, grokers[i].string,
+                             sizeof (grokers[i].string) - 1) == 0)

Note how this applies sizeof to grokers[i].string...

bfd/ChangeLog

        * elf.c (elf_parse_notes): Define convenience macro
        GROKER_ELEMENT to add elements to 'grokers'.
        Use grokers.len instead of sizeof in string comparisons.
bfd/ChangeLog
bfd/elf.c