aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2020-10-29 11:17:39 +0000
committerNick Clifton <nickc@redhat.com>2020-10-29 11:17:39 +0000
commit00c19b8e7879b5e256e7852bdac667466d7a42c2 (patch)
tree0367abf7d81ae3f32b49df0d0d09d45273da70dc /binutils
parent0ad0e70c73205da6daeb27d2cc1eeae3e54bd3d0 (diff)
downloadbinutils-00c19b8e7879b5e256e7852bdac667466d7a42c2.zip
binutils-00c19b8e7879b5e256e7852bdac667466d7a42c2.tar.gz
binutils-00c19b8e7879b5e256e7852bdac667466d7a42c2.tar.bz2
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.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/objcopy.c11
2 files changed, 15 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 5bd2125..5ccdf9b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2020-10-29 Nick Clifton <nickc@redhat.com>
+
+ PR 26805
+ * objcopy.c (is_dwo_section): Check for missing or short section
+ names.
+
2020-10-26 Andreas Rammhold <andreas@rammhold.de>
* README-how-to-make-a-release: Use sha256sum instead of md5sum.
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index d777d74..ca35df0 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;
}