From 2913a1b282ca161edb0cd8c6e15985e582556055 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 7 Feb 2013 16:07:03 +0000 Subject: * elfcomm.c (get_archive_member_name): Prevent seg-fault if a corrupt archive uses long names but has no long name table. --- binutils/elfcomm.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'binutils/elfcomm.c') diff --git a/binutils/elfcomm.c b/binutils/elfcomm.c index a50b1ece38..64d4b21398 100644 --- a/binutils/elfcomm.c +++ b/binutils/elfcomm.c @@ -586,6 +586,12 @@ get_archive_member_name (struct archive_info *arch, char *member_file_name; char *member_name; + if (arch->longnames == NULL || arch->longnames_size == 0) + { + error (_("Archive member uses long names, but no longname table found\n")); + return NULL; + } + arch->nested_member_origin = 0; k = j = strtoul (arch->arhdr.ar_name + 1, &endp, 10); if (arch->is_thin_archive && endp != NULL && * endp == ':') -- cgit v1.2.1