fix archive header parse
Alan Modra
amodra@gmail.com
Wed May 16 12:59:00 GMT 2012
Found by valgrind. sccanf looked past the end of auto var hdr.
* archive.c (_bfd_generic_read_ar_hdr_mag): Ensure sscanf
stops at end of ar_size field.
Index: bfd/archive.c
===================================================================
RCS file: /cvs/src/src/bfd/archive.c,v
retrieving revision 1.82
diff -u -p -r1.82 archive.c
--- bfd/archive.c 2 Feb 2012 11:35:31 -0000 1.82
+++ bfd/archive.c 16 May 2012 11:45:43 -0000
@@ -471,6 +471,7 @@ _bfd_generic_read_ar_hdr_mag (bfd *abfd,
}
errno = 0;
+ hdr.ar_fmag[0] = 0;
if (sscanf (hdr.ar_size, "%" BFD_VMA_FMT "u", &parsed_size) != 1)
{
bfd_set_error (bfd_error_malformed_archive);
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list