From 00c19b8e7879b5e256e7852bdac667466d7a42c2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 29 Oct 2020 11:17:39 +0000 Subject: [PATCH] Fix a potential illegal memory access by objcopy when extracting dwo sections. PR 26805 * objcopy.c (is_dwo_section): Check for missing or short section names. --- binutils/ChangeLog | 6 ++++++ binutils/objcopy.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 5bd21259443..5ccdf9b4ee7 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2020-10-29 Nick Clifton + + PR 26805 + * objcopy.c (is_dwo_section): Check for missing or short section + names. + 2020-10-26 Andreas Rammhold * README-how-to-make-a-release: Use sha256sum instead of md5sum. diff --git a/binutils/objcopy.c b/binutils/objcopy.c index d777d740cb7..ca35df03b66 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1268,8 +1268,15 @@ group_signature (asection *group) static bfd_boolean is_dwo_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) { - const char *name = bfd_section_name (sec); - int len = strlen (name); + const char *name; + int len; + + if (sec == NULL || (name = bfd_section_name (sec)) == NULL) + return FALSE; + + len = strlen (name); + if (len < 5) + return FALSE; return strncmp (name + len - 4, ".dwo", 4) == 0; } -- 2.30.2