]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR plugins/90924 (lto-plugin/lto-plugin.c heap memory corruption due to insufficie...
authorRichard Biener <rguenther@suse.de>
Thu, 25 Jul 2019 10:46:54 +0000 (10:46 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 25 Jul 2019 10:46:54 +0000 (10:46 +0000)
2019-07-25  Richard Biener  <rguenther@suse.de>

PR lto/90924
Backport from mainline
2019-07-12  Ren Kimura  <rkx1209dev@gmail.com>

* simple-object-elf.c (simple_object_elf_match): Check zero value
shstrndx.

From-SVN: r273793

libiberty/ChangeLog
libiberty/simple-object-elf.c

index 51f8edf0bf20d064f90b68c3f1374121441c2a26..e049fc9b9bd02c17abbe09add991fbc98940d2fd 100644 (file)
@@ -1,3 +1,12 @@
+2019-07-25  Richard Biener  <rguenther@suse.de>
+
+       PR lto/90924
+       Backport from mainline
+       2019-07-12  Ren Kimura  <rkx1209dev@gmail.com>
+
+       * simple-object-elf.c (simple_object_elf_match): Check zero value
+       shstrndx.
+
 2019-05-03  Release Manager
 
        * GCC 9.1.0 released.
index 22c9ae7ed2df01dfe221e9627b82e6d56f225824..3d49f339631cfbd069184f662582b580174ec0ef 100644 (file)
@@ -549,6 +549,14 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN],
       return NULL;
     }
 
+  if (eor->shstrndx == 0)
+    {
+      *errmsg = "invalid ELF shstrndx == 0";
+      *err = 0;
+      XDELETE (eor);
+      return NULL;
+    }
+
   return (void *) eor;
 }