From c2e3135df6741db94a9ec98f1eb57b02277a00b8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 6 Aug 2005 03:53:18 +0000 Subject: [PATCH] CHeck names in verdef auxiliary data exist. --- src/elflint.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/elflint.c b/src/elflint.c index df6e7bb77..aee3e71d9 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -2412,10 +2412,18 @@ section [%2d] '%s': entry %d has duplicate version name '%s'\n"), if (aux == NULL) goto no_data; - newname = alloca (sizeof (*newname)); - newname->name = elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name); - newname->next = refnamelist; - refnamelist = newname; + name = elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name); + if (name == NULL) + ERROR (gettext ("\ +section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"), + idx, section_name (ebl, idx), cnt); + else + { + newname = alloca (sizeof (*newname)); + newname->name = name; + newname->next = refnamelist; + refnamelist = newname; + } if ((aux->vda_next != 0 || cnt2 + 1 < def->vd_cnt) && aux->vda_next < gelf_fsize (ebl->elf, ELF_T_VDAUX, 1, -- 2.47.2