]> code.ossystems Code Review - openembedded-core.git/commitdiff
binutils: CVE-2017-7227
authorThiruvadi Rajaraman <trajaraman@mvista.com>
Mon, 4 Sep 2017 08:33:42 +0000 (14:03 +0530)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 7 Jan 2018 17:09:44 +0000 (17:09 +0000)
Source: git://sourceware.org/git/binutils-gdb.git
MR: 74270
Type: Security Fix
Disposition: Backport from binutils-2_28-branch
ChangeID: e4e88f56ba13671afb5b3194ca4c1c59601e5fd5
Description:

Fix seg-fault in linker when passed a bogus input script.

    PR ld/20906
    * ldlex.l: Check for bogus strings in linker scripts.

Affects: <= 2.28

Author: Nick Clifton <nickc@redhat.com>
Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
Reviewed-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-devtools/binutils/binutils-2.27.inc
meta/recipes-devtools/binutils/binutils/CVE-2017-7227.patch [new file with mode: 0644]

index 4833552ca92995542bbc5e042f505281eaa2bea7..54cdcc7bb5668dae6139b628c37b3109299bb641 100644 (file)
@@ -62,6 +62,7 @@ SRC_URI = "\
      file://CVE-2017-7223.patch \
      file://CVE-2017-7224.patch \
      file://CVE-2017-7225.patch \
+     file://CVE-2017-7227.patch \
 "
 S  = "${WORKDIR}/git"
 
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2017-7227.patch b/meta/recipes-devtools/binutils/binutils/CVE-2017-7227.patch
new file mode 100644 (file)
index 0000000..1fa98e1
--- /dev/null
@@ -0,0 +1,49 @@
+commit 406bd128dba2a59d0736839fc87a59bce319076c
+Author: Nick Clifton <nickc@redhat.com>
+Date:   Mon Dec 5 16:00:43 2016 +0000
+
+    Fix seg-fault in linker when passed a bogus input script.
+    
+        PR ld/20906
+        * ldlex.l: Check for bogus strings in linker scripts.
+
+Upstream-Status: backport
+
+CVE: CVE-2017-7227
+Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com>
+
+Index: git/ld/ChangeLog
+===================================================================
+--- git.orig/ld/ChangeLog      2017-09-04 13:18:09.660584245 +0530
++++ git/ld/ChangeLog   2017-09-04 13:20:34.286155911 +0530
+@@ -1,3 +1,8 @@
++2016-12-05  Nick Clifton  <nickc@redhat.com>
++
++      PR ld/20906
++      * ldlex.l: Check for bogus strings in linker scripts.
++
+ 2016-08-02  Nick Clifton  <nickc@redhat.com>
+       PR ld/17739
+Index: git/ld/ldlex.l
+===================================================================
+--- git.orig/ld/ldlex.l        2017-09-04 13:18:09.692584605 +0530
++++ git/ld/ldlex.l     2017-09-04 13:22:54.483583368 +0530
+@@ -416,9 +416,15 @@
+ <EXPRESSION,BOTH,SCRIPT,VERS_NODE,INPUTLIST>"\""[^\"]*"\"" {
+                                       /* No matter the state, quotes
+-                                         give what's inside */
++                                          give what's inside.  */
++                                        bfd_size_type len;
+                                       yylval.name = xstrdup (yytext + 1);
+-                                      yylval.name[yyleng - 2] = 0;
++                                        /* PR ld/20906.  A corrupt input file
++                                           can contain bogus strings.  */
++                                        len = strlen (yylval.name);
++                                        if (len > yyleng - 2)
++                                          len = yyleng - 2;
++                                        yylval.name[len] = 0;
+                                       return NAME;
+                               }
+ <BOTH,SCRIPT,EXPRESSION>"\n"          { lineno++;}