[PATCH 2/6] robustify: elflint.
Mark Wielaard
mjw at redhat.com
Mon Jan 20 10:44:40 UTC 2014
On Fri, 2014-01-17 at 21:20 +0100, Mark Wielaard wrote:
> +2014-01-17 Jakub Jelinek <jakub at redhat.com>
> +
> + * elflint.c (section_name): Return "<invalid>" instead of
> + crashing on invalid section name.
> + (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
> + check_symtab_shndx, check_hash, check_versym): Robustify.
> + (check_hash): Don't check entries beyond end of section.
> + (check_note): Don't crash if gelf_rawchunk fails.
I made a small merge mistake (it was correct on the robustify branch and
in the original patch), since we now use shnum here already...
> @@ -311,10 +311,19 @@ section_name (Ebl *ebl, int idx)
> {
> GElf_Shdr shdr_mem;
> GElf_Shdr *shdr;
> + const char *ret;
> +
> + if ((unsigned int) idx > shnum)
> + return "<invalid>";
The definitions should be moved up:
@@ -123,6 +123,10 @@ static uint32_t shstrndx;
/* Array to count references in section groups. */
static int *scnref;
+/* Numbers of sections and program headers. */
+static unsigned int shnum;
+static unsigned int phnum;
+
int
main (int argc, char *argv[])
@@ -337,11 +350,6 @@ static const int valid_e_machine[] =
(sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
-/* Numbers of sections and program headers. */
-static unsigned int shnum;
-static unsigned int phnum;
-
-
static void
check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size)
{
Fixed up the patch and rebased the series against current master on the
mjw/pending branch.
Cheers,
Mark
More information about the elfutils-devel
mailing list