[gcc/devel/omp/gcc-9] re PR plugins/90924 (lto-plugin/lto-plugin.c heap memory corruption due to insufficient sanitization

Tobias Burnus burnus@gcc.gnu.org
Thu Mar 5 14:11:00 GMT 2020


https://gcc.gnu.org/g:daa31aea3049ebff072ecced5dcfe6d158539973

commit daa31aea3049ebff072ecced5dcfe6d158539973
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jul 25 10:46:54 2019 +0000

    re PR plugins/90924 (lto-plugin/lto-plugin.c heap memory corruption due to insufficient sanitization.)
    
    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

Diff:
---
 libiberty/ChangeLog           | 9 +++++++++
 libiberty/simple-object-elf.c | 8 ++++++++
 2 files changed, 17 insertions(+)

diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 51f8edf..e049fc9 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -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.
diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
index 22c9ae7..3d49f33 100644
--- a/libiberty/simple-object-elf.c
+++ b/libiberty/simple-object-elf.c
@@ -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;
 }



More information about the Gcc-cvs mailing list