From 21b65bac42c899df2049cdbd472b2e7242a40fbe Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 6 Sep 2016 15:42:12 +0100 Subject: [PATCH] Fix a problem in readelf where memcpy could be called with a NULL second argument. * readelf.c (request_dump_bynumber): Only call memcpy if dump_sects is not NULL. --- binutils/ChangeLog | 5 +++++ binutils/readelf.c | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 5ab28f8079b..4b3a746db95 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2016-09-06 Nick Clifton + + * readelf.c (request_dump_bynumber): Only call memcpy if + dump_sects is not NULL. + 2016-08-29 H.J. Lu * readelf.c (load_specific_debug_section): Check the external diff --git a/binutils/readelf.c b/binutils/readelf.c index a99c521c123..c9bce2e5cb3 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -4238,10 +4238,13 @@ request_dump_bynumber (unsigned int section, dump_type type) error (_("Out of memory allocating dump request table.\n")); else { - /* Copy current flag settings. */ - memcpy (new_dump_sects, dump_sects, num_dump_sects * sizeof (* dump_sects)); + if (dump_sects) + { + /* Copy current flag settings. */ + memcpy (new_dump_sects, dump_sects, num_dump_sects * sizeof (* dump_sects)); - free (dump_sects); + free (dump_sects); + } dump_sects = new_dump_sects; num_dump_sects = section + 1; -- 2.30.2