diff options
| author | Mark Wielaard <[email protected]> | 2015-05-06 13:09:23 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2015-05-12 16:45:51 +0200 |
| commit | 16e2ac344788f2bb08ae9dc0a20948f554ca560c (patch) | |
| tree | 5b051e651f0d76b2390f76f2cdd26d966b87b78e | |
| parent | dedb5e738826b51f12e0a216fad6be3b60668995 (diff) | |
elflint: Stop checking section when 2nd hash function shift too big.
Nothing good comes from trying to continue with a bogus hash function.
https://bugzilla.redhat.com/show_bug.cgi?id=1170810#c31
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/elflint.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 7a44fc6e..486f20f1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2015-05-06 Mark Wielaard <[email protected]> + + * elflint.c (check_gnu_hash): Return early when 2nd hash function + shift too big. + 2015-05-05 Mark Wielaard <[email protected]> * nm.c (show_symbols): Handle dwarf_linesrc returning NULL. diff --git a/src/elflint.c b/src/elflint.c index a6f9b688..3abda718 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -2115,9 +2115,12 @@ section [%2d] '%s': hash table section is too small (is %ld, expected at least % } if (shift > 31) - ERROR (gettext ("\ + { + ERROR (gettext ("\ section [%2d] '%s': 2nd hash function shift too big: %u\n"), - idx, section_name (ebl, idx), shift); + idx, section_name (ebl, idx), shift); + return; + } size_t maxidx = shdr->sh_size / sizeof (Elf32_Word) - (4 + bitmask_words + nbuckets); |
