Consolidated pull
cover Consolidated pull
The following changes since commit 69b49e8dc45cf60defba547d93e663df42c92127:
boot-directdisk.bbclass: remove HDDIMG before create (2016-05-09 14:37:19 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/jethro-next
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/jethro-next
André Draszik (1):
gdb: fix QA warning (uClibc)
Martyn Welch (1):
glew: Correct version in autotooling patches
Tom Zanussi (1):
Revert "kernel/kernel-arch: Explicitly mapping between, i386/x86_64
and x86 for kernel ARCH"
Tristan Van Berkom (1):
binutils: backport bug fix to the 2.25 branch for jethro
Yuanjie Huang (1):
glibc: Fix CVE-2015-8778
meta/classes/kernel-arch.bbclass | 4 +- meta/classes/kernel.bbclass | 15 +- meta/recipes-core/glibc/glibc/CVE-2015-8778.patch | 199 +++++++++++++++++++++ meta/recipes-core/glibc/glibc_2.22.bb | 1 + meta/recipes-devtools/binutils/binutils-2.25.1.inc | 1 + ...plying-TLSDESC-relocs-without-TLS-segment.patch | 166 +++++++++++++++++ meta/recipes-devtools/gdb/gdb-common.inc | 2 +- meta/recipes-graphics/glew/glew/autotools.patch | 4 +- .../glew/glew/fix-glew.pc-install.patch | 2 +- 9 files changed, 375 insertions(+), 19 deletions(-) create mode 100644 meta/recipes-core/glibc/glibc/CVE-2015-8778.patch create mode 100644 meta/recipes-devtools/binutils/binutils/fix-internal-error-when-applying-TLSDESC-relocs-without-TLS-segment.patch
Signature · 1 line
2.8.0
PATCH 1/5 glibc: Fix CVE-2015-8778
From: Yuanjie Huang <[email protected]>
CVE: CVE-2015-8778
Improve check against integer wraparound in hcreate_r [BZ #18240]
This is an integer overflow in hcreate and hcreate_r which can result in an out-of-bound memory access. This could lead to application crashes or, potentially, arbitrary code execution.
Upstream-Status: Backport [2.23]
(cherry-picked from commit bae7c7c7, 4bd228c8)
--- meta/recipes-core/glibc/glibc/CVE-2015-8778.patch | 199 ++++++++++++++++++++++ meta/recipes-core/glibc/glibc_2.22.bb | 1 + 2 files changed, 200 insertions(+) create mode 100644 meta/recipes-core/glibc/glibc/CVE-2015-8778.patch
meta/recipes-core/glibc/glibc/CVE-2015-8778.patch new file +199 -0
@@ -0,0 +1,199 @@ +From d0f05d1e39adb336a8bbccbc276a344e6ff427e3 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <[email protected]> +Date: Thu, 28 Jan 2016 13:59:11 +0100 +Subject: [PATCH] Improve check against integer wraparound in hcreate_r [BZ + #18240] + +CVE: CVE-2015-8778 + +Improve check against integer wraparound in hcreate_r [BZ #18240] + +This is an integer overflow in hcreate and hcreate_r which can result in +an out-of-bound memory access. This could lead to application crashes +or, potentially, arbitrary code execution. + +Upstream-Status: Backport [2.23] +(cherry-picked from commit bae7c7c7, 4bd228c8) + +Signed-off-by: Yuanjie Huang <[email protected]> +--- + ChangeLog | 6 +++++ + NEWS | 2 +- + misc/Makefile | 2 +- + misc/bug18240.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + misc/hsearch_r.c | 28 ++++++++++++--------- + 5 files changed, 100 insertions(+), 13 deletions(-) + create mode 100644 misc/bug18240.c + +diff --git a/ChangeLog b/ChangeLog +index b7701d1..a9dc8a2 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2016-01-27 Paul Eggert <[email protected]> ++ ++ [BZ #18240] ++ * misc/hsearch_r.c (isprime, __hcreate_r): Protect against ++ unsigned int wraparound. ++ + 2016-02-15 Carlos O'Donell <[email protected]> + + [BZ #18665] +diff --git a/NEWS b/NEWS +index cda7a73..fd77c27 100644 +--- a/NEWS ++++ b/NEWS +@@ -9,7 +9,7 @@ Version 2.22.1 + + * The following bugs are resolved with this release: + +- 18778, 18781, 18787, 17905. ++ 18240, 18778, 18781, 18787, 17905. + + Version 2.22 + +diff --git a/misc/Makefile b/misc/Makefile +index e6b7c23..463a238 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -83,7 +83,7 @@ install-lib := libg.a + gpl2lgpl := error.c error.h + + tests := tst-dirname tst-tsearch tst-fdset tst-mntent tst-hsearch \ +- tst-pselect tst-insremque tst-mntent2 bug-hsearch1 ++ tst-pselect tst-insremque tst-mntent2 bug-hsearch1 bug18240 + tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += tst-error1 + tests-$(OPTION_EGLIBC_FCVT) += tst-efgcvt + ifeq ($(run-built-tests),yes) +diff --git a/misc/bug18240.c b/misc/bug18240.c +new file mode 100644 +index 0000000..4b26865 +--- /dev/null ++++ b/misc/bug18240.c +@@ -0,0 +1,75 @@ ++/* Test integer wraparound in hcreate. ++ Copyright (C) 2016 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <errno.h> ++#include <limits.h> ++#include <search.h> ++#include <stdbool.h> ++#include <stdio.h> ++#include <stdlib.h> ++ ++static void ++test_size (size_t size) ++{ ++ int res = hcreate (size); ++ if (res == 0) ++ { ++ if (errno == ENOMEM) ++ return; ++ printf ("error: hcreate (%zu): %m\n", size); ++ exit (1); ++ } ++ char *keys[100]; ++ for (int i = 0; i < 100; ++i) ++ { ++ if (asprintf (keys + i, "%d", i) < 0) ++ { ++ printf ("error: asprintf: %m\n"); ++ exit (1); ++ } ++ ENTRY e = { keys[i], (char *) "value" }; ++ if (hsearch (e, ENTER) == NULL) ++ { ++ printf ("error: hsearch (\"%s\"): %m\n", keys[i]); ++ exit (1); ++ } ++ } ++ hdestroy (); ++ ++ for (int i = 0; i < 100; ++i) ++ free (keys[i]); ++} ++ ++static int ++do_test (void) ++{ ++ test_size (500); ++ test_size (-1); ++ test_size (-3); ++ test_size (INT_MAX - 2); ++ test_size (INT_MAX - 1); ++ test_size (INT_MAX); ++ test_size (((unsigned) INT_MAX) + 1); ++ test_size (UINT_MAX - 2); ++ test_size (UINT_MAX - 1); ++ test_size (UINT_MAX); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/misc/hsearch_r.c b/misc/hsearch_r.c +index 9f55e84..6000ce2 100644 +--- a/misc/hsearch_r.c ++++ b/misc/hsearch_r.c +@@ -46,15 +46,12 @@ static int + isprime (unsigned int number) + { + /* no even number will be passed */ +- unsigned int div = 3; +- +- while (div * div < number && number % div != 0) +- div += 2; +- +- return number % div != 0; ++ for (unsigned int div = 3; div <= number / div; div += 2) ++ if (number % div == 0) ++ return 0; ++ return 1; + } + +- + /* Before using the hash table we must allocate memory for it. + Test for an existing table are done. We allocate one element + more as the found prime number says. This is done for more effective +@@ -81,10 +78,19 @@ __hcreate_r (nel, htab) + use will not work. */ + if (nel < 3) + nel = 3; +- /* Change nel to the first prime number not smaller as nel. */ +- nel |= 1; /* make odd */ +- while (!isprime (nel)) +- nel += 2; ++ ++ /* Change nel to the first prime number in the range [nel, UINT_MAX - 2], ++ The '- 2' means 'nel += 2' cannot overflow. */ ++ for (nel |= 1; ; nel += 2) ++ { ++ if (UINT_MAX - 2 < nel) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ if (isprime (nel)) ++ break; ++ } + + htab->size = nel; + htab->filled = 0; +-- +2.7.4 +
meta/recipes-core/glibc/glibc_2.22.bb +1 -0
@@ -47,6 +47,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ file://CVE-2015-9761_2.patch \ file://CVE-2015-8776.patch \ file://CVE-2015-7547.patch \ + file://CVE-2015-8778.patch \ " SRC_URI += "\
Signature · 1 line
2.8.0
PATCH 2/5 binutils: backport bug fix to the 2.25 branch for jethro
In reply to Robert YangFrom: Tristan Van Berkom <[email protected]>
We fail to build webkit on aarch64 due to this binutils bug:
https://sourceware.org/bugzilla/show_bug.cgi?id=19353
Applying patch which fixes this, stripped out changelog entry from patch to make it apply without error.
--- meta/recipes-devtools/binutils/binutils-2.25.1.inc | 1 + ...plying-TLSDESC-relocs-without-TLS-segment.patch | 166 +++++++++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 meta/recipes-devtools/binutils/binutils/fix-internal-error-when-applying-TLSDESC-relocs-without-TLS-segment.patch
meta/recipes-devtools/binutils/binutils-2.25.1.inc +1 -0
@@ -35,6 +35,7 @@ SRC_URI = "\ file://0015-Fix-dynamic-list-so-that-symbols-not-in-the-list-are.patch \ file://binutils-octeon3.patch \ file://add-thunderx-support-for-gas.patch \ + file://fix-internal-error-when-applying-TLSDESC-relocs-without-TLS-segment.patch \ " S = "${WORKDIR}/git"
meta/recipes-devtools/binutils/binutils/fix-internal-error-when-applying-TLSDESC-relocs-without-TLS-segment.patch new file +166 -0
166 lines not on this page · raw message
Signature · 1 line
2.8.0
PATCH 3/5 gdb: fix QA warning (uClibc)
In reply to Robert YangFrom: André Draszik <[email protected]>
WARNING: QA Issue: gdb rdepends on libiconv, but it isn't a build dependency? [build-deps]
We already have virtual/libiconv which is set appropriately in all environments, so let's use it to fix the issue.
--- meta/recipes-devtools/gdb/gdb-common.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/gdb/gdb-common.inc +1 -1
@@ -2,7 +2,7 @@ SUMMARY = "GNU debugger" HOMEPAGE = "http://www.gnu.org/software/gdb/" LICENSE = "GPLv3+" SECTION = "devel" -DEPENDS = "expat zlib ncurses readline ${LTTNGUST}" +DEPENDS = "expat zlib ncurses readline virtual/libiconv ${LTTNGUST}" LTTNGUST = "lttng-ust" LTTNGUST_aarch64 = ""
Signature · 1 line
2.8.0
PATCH 4/5 glew: Correct version in autotooling patches
In reply to Robert YangFrom: Martyn Welch <[email protected]>
The additional autotooling patched into glew claims the version is 1.9.0 whilst we are building 1.12.0. The version in the autotooling is used to set the version number in the pkgconfig file, this results in the configuration of packages which depend on glew > 1.9.0 failing.
This patch updates the version number used in the patches to match that of the version being built.
--- meta/recipes-graphics/glew/glew/autotools.patch | 4 ++-- meta/recipes-graphics/glew/glew/fix-glew.pc-install.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-graphics/glew/glew/autotools.patch +2 -2
@@ -20,7 +20,7 @@ Index: glew/configure.ac +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.62]) -+AC_INIT([glew], [1.9.0], [BUG-REPORT-ADDRESS]) ++AC_INIT([glew], [1.12.0], [BUG-REPORT-ADDRESS]) +AC_CONFIG_SRCDIR([src/glew.c]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign])
@@ -77,7 +77,7 @@ Index: glew/configure.ac +# for now we use the same version as the package, but that should be avoided +# in the future + -+AC_SUBST([LIBGLEW_SO_VERSION], [1:9:0]) ++AC_SUBST([LIBGLEW_SO_VERSION], [1:12:0]) + +AC_CONFIG_FILES([Makefile + include/Makefile
meta/recipes-graphics/glew/glew/fix-glew.pc-install.patch +1 -1
@@ -20,7 +20,7 @@ Index: glew-1.11.0/configure.ac =================================================================== --- glew-1.11.0.orig/configure.ac +++ glew-1.11.0/configure.ac -@@ -66,5 +66,6 @@ AC_SUBST([LIBGLEW_SO_VERSION], [1:9:0]) +@@ -66,5 +66,6 @@ AC_SUBST([LIBGLEW_SO_VERSION], [1:12:0]) AC_CONFIG_FILES([Makefile include/Makefile
Signature · 1 line
2.8.0
Re: [PATCH 4/5] glew: Correct version in autotooling patches
Quoted 9 lines · Robert Yang
From: Martyn Welch <[email protected]>
The additional autotooling patched into glew claims the version is 1.9.0 whilst we are building 1.12.0. The version in the autotooling is used to set the version number in the pkgconfig file, this results in the configuration of packages which depend on glew > 1.9.0 failing.
This patch updates the version number used in the patches to match that of the version being built.
This patch was made obsolete in February when Ross modified the recipe (and upgraded to 1.13) or am I missing something here?
Jussi
Quoted 49 lines
Signed-off-by Martyn Welch <[email protected]>--- meta/recipes-graphics/glew/glew/autotools.patch | 4 ++-- meta/recipes-graphics/glew/glew/fix-glew.pc-install.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)meta/recipes-graphics/glew/glew/autotools.patch +2
-2@@ -20,7 +20,7 @@ Index: glew/configure.ac +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.62]) -+AC_INIT([glew], [1.9.0], [BUG-REPORT-ADDRESS]) ++AC_INIT([glew], [1.12.0], [BUG-REPORT-ADDRESS]) +AC_CONFIG_SRCDIR([src/glew.c]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign])@@ -77,7 +77,7 @@ Index: glew/configure.ac +# for now we use the same version as the package, but that should be avoided +# in the future + -+AC_SUBST([LIBGLEW_SO_VERSION], [1:9:0]) ++AC_SUBST([LIBGLEW_SO_VERSION], [1:12:0]) + +AC_CONFIG_FILES([Makefile + include/Makefilemeta/recipes-graphics/glew/glew/fix-glew.pc-install.patch +1
-2@@ -20,7 +20,7 @@ Index: glew-1.11.0/configure.ac =================================================================== --- glew-1.11.0.orig/configure.ac +++ glew-1.11.0/configure.ac -@@ -66,5 +66,6 @@ AC_SUBST([LIBGLEW_SO_VERSION], [1:9:0]) +@@ -66,5 +66,6 @@ AC_SUBST([LIBGLEW_SO_VERSION], [1:12:0]) AC_CONFIG_FILES([Makefile include/Makefile --2.8.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [PATCH 4/5] glew: Correct version in autotooling patches
Quoted 2 lines · Jussi Kukkonen
This patch was made obsolete in February when Ross modified the recipe (and upgraded to 1.13) or am I missing something here?
Ah, I see I'm missing "[jethro]" in the cover letter, sorry.
Would be nice to have it in the patch titles as well.
Jussi
PATCH 5/5 Revert "kernel/kernel-arch: Explicitly mapping between, i386/x86_64 and x86 for kernel ARCH"
In reply to Robert YangFrom: Tom Zanussi <[email protected]>
This reverts commit a6f52930a68d8462e23486d51cdda715072dd752.
In addition to also causing the problem in [YOCTO #9579], this commit was reverted in krogoth and master but wasn't reverted in jethro but should be. The original revert message was:
This reverts commit 8d310b24927d0f348fb431895f0583733db2aad0.
That commit completely breaks KBUILD_DEFCONFIG because it relies on $ARCH to match between the target OE arch and the kernel subdirectory containing the defconfigs. In the kernel all defconfigs for everything x86-based (including x86_64) is stored in dir arch/x86/configs/
kernel-yocto.bbclass correctly searches for all the defconfigs inside ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}
Commit 8d310b249 makes it search in wrong places and _only_ if you define TARGET_ARCH = "athlon" will it search x86 which is nonsensical.
The commit further adds an if clause to hack the mungled kernel arches back to their original values (ugh) in do_shared_workdir which is run after do compile, but of course the build breaks before that in do_kernel_metadata because of the KBUILD_DEFCONFIG mentioned above (so that hack is useless).
Please fix that corner case bug in another way which does not completely screw up the kernel arch mapping & defconfig logic. If 64bit configs are generated in the kernel for 32bit machines because the host is asked, then it it a bug in the kernel, it is of no use to hack around it in OE.
(From OE-Core rev: bc02a478a5d4a5de7b3943ed809d5c22711f5b1f)
--- meta/classes/kernel-arch.bbclass | 4 +--- meta/classes/kernel.bbclass | 15 +++------------ 2 files changed, 4 insertions(+), 15 deletions(-)
meta/classes/kernel-arch.bbclass +1 -3
@@ -21,9 +21,7 @@ def map_kernel_arch(a, d): valid_archs = d.getVar('valid_archs', True).split() - if re.match('i.86$', a): return 'i386' - elif re.match('x86.64$', a): return 'x86_64' - elif re.match('athlon$', a): return 'x86' + if re.match('(i.86|athlon|x86.64)$', a): return 'x86' elif re.match('armeb$', a): return 'arm' elif re.match('aarch64$', a): return 'arm64' elif re.match('aarch64_be$', a): return 'arm64'
meta/classes/kernel.bbclass +3 -12
@@ -309,18 +309,9 @@ do_shared_workdir () { cp -fR include/generated/* $kerneldir/include/generated/ fi - # When ARCH is set to i386 or x86_64, we need to map ARCH to the real name of src - # dir (x86) under arch/ of kenrel tree, so that we can find correct source to copy. - - if [ "${ARCH}" = "i386" ] || [ "${ARCH}" = "x86_64" ]; then - KERNEL_SRCARCH=x86 - else - KERNEL_SRCARCH=${ARCH} - fi - - if [ -d arch/${KERNEL_SRCARCH}/include/generated ]; then - mkdir -p $kerneldir/arch/${KERNEL_SRCARCH}/include/generated/ - cp -fR arch/${KERNEL_SRCARCH}/include/generated/* $kerneldir/arch/${KERNEL_SRCARCH}/include/generated/ + if [ -d arch/${ARCH}/include/generated ]; then + mkdir -p $kerneldir/arch/${ARCH}/include/generated/ + cp -fR arch/${ARCH}/include/generated/* $kerneldir/arch/${ARCH}/include/generated/ fi }
Signature · 1 line
2.8.0