On Mon, 2021-10-25 at 12:59 +0530, pgowda cve wrote: > Hi, > > Thanks for the comments. > > Gentle ping on this patch.
Sorry for the delay. It's in my queue but there are some issues, not related to this patch, that I am trying to debug. It should get merged soon. Thanks, Anuj > > Thanks, > Pgowda > > On Sun, Oct 17, 2021 at 10:35 AM Khem Raj <raj.k...@gmail.com> wrote: > > > > This looks good to me > > > > On Sat, Oct 16, 2021 at 7:51 PM Pgowda <pgowda....@gmail.com> > > wrote: > > > > > > glibc-2.33 release version of Feb 2021 is used in Hardknott > > > branch. > > > There are many bug fixes in the latest glibc-2.33 version. The > > > patch > > > takes the latest glibc-2.33 version commit. > > > Regression tested on X86-64 without any new issues. > > > > > > Signed-off-by: Pgowda <pgowda....@gmail.com> > > > --- > > > meta/recipes-core/glibc/glibc-version.inc | 2 +- > > > .../glibc/glibc/0001-CVE-2021-38604.patch | 40 ---- > > > ...-private-futex-optimization-BZ-27304.patch | 49 ----- > > > .../glibc/glibc/0002-CVE-2021-38604.patch | 147 ------------ > > > -- > > > ...-ISA-support-for-x86-64-level-marker.patch | 116 ----------- > > > ...ork-around-GCC-PR-98512-in-rawmemchr.patch | 58 ------ > > > ...-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch | 185 ------------ > > > ------ > > > .../glibc/glibc/CVE-2021-27318-revert.patch | 174 > > > ++++++++++++++++ > > > .../glibc/glibc/CVE-2021-27645.patch | 51 ----- > > > .../glibc/glibc/CVE-2021-33574_1.patch | 76 ------- > > > .../glibc/glibc/CVE-2021-33574_2.patch | 61 ------ > > > .../glibc/glibc/CVE-2021-35942.patch | 44 ----- > > > meta/recipes-core/glibc/glibc_2.33.bb | 10 - > > > 13 files changed, 175 insertions(+), 838 deletions(-) > > > delete mode 100644 meta/recipes-core/glibc/glibc/0001-CVE-2021- > > > 38604.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/0001-nptl- > > > Remove-private-futex-optimization-BZ-27304.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/0002-CVE-2021- > > > 38604.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/0031-x86- > > > Require-full-ISA-support-for-x86-64-level-marker.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/0032-string- > > > Work-around-GCC-PR-98512-in-rawmemchr.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/0033-x86- > > > Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch > > > create mode 100644 meta/recipes-core/glibc/glibc/CVE-2021-27318- > > > revert.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/CVE-2021- > > > 27645.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/CVE-2021- > > > 33574_1.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/CVE-2021- > > > 33574_2.patch > > > delete mode 100644 meta/recipes-core/glibc/glibc/CVE-2021- > > > 35942.patch > > > > > > diff --git a/meta/recipes-core/glibc/glibc-version.inc > > > b/meta/recipes-core/glibc/glibc-version.inc > > > index 3a95173175..4d69187961 100644 > > > --- a/meta/recipes-core/glibc/glibc-version.inc > > > +++ b/meta/recipes-core/glibc/glibc-version.inc > > > @@ -1,6 +1,6 @@ > > > SRCBRANCH ?= "release/2.33/master" > > > PV = "2.33" > > > -SRCREV_glibc ?= "9826b03b747b841f5fc6de2054bf1ef3f5c4bdf3" > > > +SRCREV_glibc ?= "6090cf1330faf2deb17285758f327cb23b89ebf1" > > > SRCREV_localedef ?= "bd644c9e6f3e20c5504da1488448173c69c56c28" > > > > > > GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" > > > diff --git a/meta/recipes-core/glibc/glibc/0001-CVE-2021- > > > 38604.patch b/meta/recipes-core/glibc/glibc/0001-CVE-2021- > > > 38604.patch > > > deleted file mode 100644 > > > index 8a52ac957c..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/0001-CVE-2021-38604.patch > > > +++ /dev/null > > > @@ -1,40 +0,0 @@ > > > -From b805aebd42364fe696e417808a700fdb9800c9e8 Mon Sep 17 > > > 00:00:00 2001 > > > -From: Nikita Popov <npv1...@gmail.com> > > > -Date: Mon, 9 Aug 2021 20:17:34 +0530 > > > -Subject: [PATCH] librt: fix NULL pointer dereference (bug 28213) > > > - > > > -Helper thread frees copied attribute on NOTIFY_REMOVED message > > > -received from the OS kernel. Unfortunately, it fails to check > > > whether > > > -copied attribute actually exists (data.attr != NULL). This > > > worked > > > -earlier because free() checks passed pointer before actually > > > -attempting to release corresponding memory. But > > > -__pthread_attr_destroy assumes pointer is not NULL. > > > - > > > -So passing NULL pointer to __pthread_attr_destroy will result in > > > -segmentation fault. This scenario is possible if > > > -notification->sigev_notify_attributes == NULL (which means > > > default > > > -thread attributes should be used). > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=b805aebd42364fe696e417808a700fdb9800c9e8 > > > ] > > > -CVE: CVE-2021-38604 > > > - > > > -Signed-off-by: Nikita Popov <npv1...@gmail.com> > > > -Reviewed-by: Siddhesh Poyarekar <siddh...@sourceware.org> > > > -Signed-off-by: Vinay Kumar <vinay.m.e...@gmail.com> > > > ---- > > > - sysdeps/unix/sysv/linux/mq_notify.c | 2 +- > > > - 1 file changed, 1 insertion(+), 1 deletion(-) > > > - > > > -diff --git a/sysdeps/unix/sysv/linux/mq_notify.c > > > b/sysdeps/unix/sysv/linux/mq_notify.c > > > -index 6f46d29d1d..1714e1cc5f 100644 > > > ---- a/sysdeps/unix/sysv/linux/mq_notify.c > > > -+++ b/sysdeps/unix/sysv/linux/mq_notify.c > > > -@@ -132,7 +132,7 @@ helper_thread (void *arg) > > > - to wait until it is done with it. */ > > > - (void) __pthread_barrier_wait (¬ify_barrier); > > > - } > > > -- else if (data.raw[NOTIFY_COOKIE_LEN - 1] == > > > NOTIFY_REMOVED) > > > -+ else if (data.raw[NOTIFY_COOKIE_LEN - 1] == > > > NOTIFY_REMOVED && data.attr != NULL) > > > - { > > > - /* The only state we keep is the copy of the thread > > > attributes. */ > > > - pthread_attr_destroy (data.attr); > > > diff --git a/meta/recipes-core/glibc/glibc/0001-nptl-Remove- > > > private-futex-optimization-BZ-27304.patch b/meta/recipes- > > > core/glibc/glibc/0001-nptl-Remove-private-futex-optimization-BZ- > > > 27304.patch > > > deleted file mode 100644 > > > index 39fde5b785..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/0001-nptl-Remove-private- > > > futex-optimization-BZ-27304.patch > > > +++ /dev/null > > > @@ -1,49 +0,0 @@ > > > -From c4ad832276f4dadfa40904109b26a521468f66bc Mon Sep 17 > > > 00:00:00 2001 > > > -From: Florian Weimer <fwei...@redhat.com> > > > -Date: Thu, 4 Feb 2021 15:00:20 +0100 > > > -Subject: [PATCH] nptl: Remove private futex optimization [BZ > > > #27304] > > > - > > > -It is effectively used, unexcept for pthread_cond_destroy, where > > > we do > > > -not want it; see bug 27304. The internal locks do not support a > > > -process-shared mode. > > > - > > > -This fixes commit dc6cfdc934db9997c33728082d63552b9eee4563 > > > ("nptl: > > > -Move pthread_cond_destroy implementation into libc"). > > > - > > > -Reviewed-by: Adhemerval Zanella <adhemerval.zane...@linaro.org> > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/bugzilla/show_bug.cgi?id=27304] > > > -Signed-off-by: Yanfei Xu <yanfei...@windriver.com> > > > ---- > > > - sysdeps/nptl/lowlevellock-futex.h | 14 +------------- > > > - 1 file changed, 1 insertion(+), 13 deletions(-) > > > - > > > -diff --git a/sysdeps/nptl/lowlevellock-futex.h > > > b/sysdeps/nptl/lowlevellock-futex.h > > > -index ecb729da6b..ca96397a4a 100644 > > > ---- a/sysdeps/nptl/lowlevellock-futex.h > > > -+++ b/sysdeps/nptl/lowlevellock-futex.h > > > -@@ -50,20 +50,8 @@ > > > - #define LLL_SHARED FUTEX_PRIVATE_FLAG > > > - > > > - #ifndef __ASSEMBLER__ > > > -- > > > --# if IS_IN (libc) || IS_IN (rtld) > > > --/* In libc.so or ld.so all futexes are private. */ > > > --# define __lll_private_flag(fl, private) \ > > > -- ({ \ > > > -- /* Prevent warnings in callers of this macro. */ \ > > > -- int __lll_private_flag_priv __attribute__ ((unused)); \ > > > -- __lll_private_flag_priv = (private); \ > > > -- ((fl) | FUTEX_PRIVATE_FLAG); \ > > > -- }) > > > --# else > > > --# define __lll_private_flag(fl, private) \ > > > -+# define __lll_private_flag(fl, private) \ > > > - (((fl) | FUTEX_PRIVATE_FLAG) ^ (private)) > > > --# endif > > > - > > > - # define lll_futex_syscall(nargs, futexp, op, > > > ...) \ > > > - > > > ({ > > > \ > > > --- > > > -2.27.0 > > > - > > > diff --git a/meta/recipes-core/glibc/glibc/0002-CVE-2021- > > > 38604.patch b/meta/recipes-core/glibc/glibc/0002-CVE-2021- > > > 38604.patch > > > deleted file mode 100644 > > > index b654cdfecb..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/0002-CVE-2021-38604.patch > > > +++ /dev/null > > > @@ -1,147 +0,0 @@ > > > -From 4cc79c217744743077bf7a0ec5e0a4318f1e6641 Mon Sep 17 > > > 00:00:00 2001 > > > -From: Nikita Popov <npv1...@gmail.com> > > > -Date: Thu, 12 Aug 2021 16:09:50 +0530 > > > -Subject: [PATCH] librt: add test (bug 28213) > > > - > > > -This test implements following logic: > > > -1) Create POSIX message queue. > > > - Register a notification with mq_notify (using NULL > > > attributes). > > > - Then immediately unregister the notification with mq_notify. > > > - Helper thread in a vulnerable version of glibc > > > - should cause NULL pointer dereference after these steps. > > > -2) Once again, register the same notification. > > > - Try to send a dummy message. > > > - Test is considered successfulif the dummy message > > > - is successfully received by the callback function. > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=4cc79c217744743077bf7a0ec5e0a4318f1e6641 > > > ] > > > -CVE: CVE-2021-38604 > > > - > > > -Signed-off-by: Nikita Popov <npv1...@gmail.com> > > > -Reviewed-by: Siddhesh Poyarekar <siddh...@sourceware.org> > > > -Signed-off-by: Vinay Kumar <vinay.m.e...@gmail.com> > > > ---- > > > - rt/Makefile | 1 + > > > - rt/tst-bz28213.c | 101 > > > +++++++++++++++++++++++++++++++++++++++++++++++ > > > - 2 files changed, 102 insertions(+) > > > - create mode 100644 rt/tst-bz28213.c > > > - > > > -diff --git a/rt/Makefile b/rt/Makefile > > > -index 7b374f2073..c87d95793a 100644 > > > ---- a/rt/Makefile > > > -+++ b/rt/Makefile > > > -@@ -44,6 +44,7 @@ tests := tst-shm tst-timer tst-timer2 \ > > > - tst-aio7 tst-aio8 tst-aio9 tst-aio10 \ > > > - tst-mqueue1 tst-mqueue2 tst-mqueue3 tst-mqueue4 \ > > > - tst-mqueue5 tst-mqueue6 tst-mqueue7 tst-mqueue8 tst- > > > mqueue9 \ > > > -+ tst-bz28213 \ > > > - tst-timer3 tst-timer4 tst-timer5 \ > > > - tst-cpuclock2 tst-cputimer1 tst-cputimer2 tst-cputimer3 > > > \ > > > - tst-shm-cancel > > > -diff --git a/rt/tst-bz28213.c b/rt/tst-bz28213.c > > > -new file mode 100644 > > > -index 0000000000..0c096b5a0a > > > ---- /dev/null > > > -+++ b/rt/tst-bz28213.c > > > -@@ -0,0 +1,101 @@ > > > -+/* Bug 28213: test for NULL pointer dereference in mq_notify. > > > -+ Copyright (C) The GNU Toolchain Authors. > > > -+ 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 > > > -+ <https://www.gnu.org/licenses/>. */ > > > -+ > > > -+#include <errno.h> > > > -+#include <sys/types.h> > > > -+#include <sys/stat.h> > > > -+#include <fcntl.h> > > > -+#include <unistd.h> > > > -+#include <mqueue.h> > > > -+#include <signal.h> > > > -+#include <stdlib.h> > > > -+#include <string.h> > > > -+#include <support/check.h> > > > -+ > > > -+static mqd_t m = -1; > > > -+static const char msg[] = "hello"; > > > -+ > > > -+static void > > > -+check_bz28213_cb (union sigval sv) > > > -+{ > > > -+ char buf[sizeof (msg)]; > > > -+ > > > -+ (void) sv; > > > -+ > > > -+ TEST_VERIFY_EXIT ((size_t) mq_receive (m, buf, sizeof (buf), > > > NULL) > > > -+ == sizeof (buf)); > > > -+ TEST_VERIFY_EXIT (memcmp (buf, msg, sizeof (buf)) == 0); > > > -+ > > > -+ exit (0); > > > -+} > > > -+ > > > -+static void > > > -+check_bz28213 (void) > > > -+{ > > > -+ struct sigevent sev; > > > -+ > > > -+ memset (&sev, '\0', sizeof (sev)); > > > -+ sev.sigev_notify = SIGEV_THREAD; > > > -+ sev.sigev_notify_function = check_bz28213_cb; > > > -+ > > > -+ /* Step 1: Register & unregister notifier. > > > -+ Helper thread should receive NOTIFY_REMOVED notification. > > > -+ In a vulnerable version of glibc, NULL pointer dereference > > > follows. */ > > > -+ TEST_VERIFY_EXIT (mq_notify (m, &sev) == 0); > > > -+ TEST_VERIFY_EXIT (mq_notify (m, NULL) == 0); > > > -+ > > > -+ /* Step 2: Once again, register notification. > > > -+ Try to send one message. > > > -+ Test is considered successful, if the callback does exit > > > (0). */ > > > -+ TEST_VERIFY_EXIT (mq_notify (m, &sev) == 0); > > > -+ TEST_VERIFY_EXIT (mq_send (m, msg, sizeof (msg), 1) == 0); > > > -+ > > > -+ /* Wait... */ > > > -+ pause (); > > > -+} > > > -+ > > > -+static int > > > -+do_test (void) > > > -+{ > > > -+ static const char m_name[] = "/bz28213_queue"; > > > -+ struct mq_attr m_attr; > > > -+ > > > -+ memset (&m_attr, '\0', sizeof (m_attr)); > > > -+ m_attr.mq_maxmsg = 1; > > > -+ m_attr.mq_msgsize = sizeof (msg); > > > -+ > > > -+ m = mq_open (m_name, > > > -+ O_RDWR | O_CREAT | O_EXCL, > > > -+ 0600, > > > -+ &m_attr); > > > -+ > > > -+ if (m < 0) > > > -+ { > > > -+ if (errno == ENOSYS) > > > -+ FAIL_UNSUPPORTED ("POSIX message queues are not > > > implemented\n"); > > > -+ FAIL_EXIT1 ("Failed to create POSIX message queue: > > > %m\n"); > > > -+ } > > > -+ > > > -+ TEST_VERIFY_EXIT (mq_unlink (m_name) == 0); > > > -+ > > > -+ check_bz28213 (); > > > -+ > > > -+ return 0; > > > -+} > > > -+ > > > -+#include <support/test-driver.c> > > > diff --git a/meta/recipes-core/glibc/glibc/0031-x86-Require-full- > > > ISA-support-for-x86-64-level-marker.patch b/meta/recipes- > > > core/glibc/glibc/0031-x86-Require-full-ISA-support-for-x86-64- > > > level-marker.patch > > > deleted file mode 100644 > > > index 3cb60b2e55..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/0031-x86-Require-full-ISA- > > > support-for-x86-64-level-marker.patch > > > +++ /dev/null > > > @@ -1,116 +0,0 @@ > > > -From b1971f6f1331d738d1d6b376b4741668a7546125 Mon Sep 17 > > > 00:00:00 2001 > > > -From: "H.J. Lu" <hjl.to...@gmail.com> > > > -Date: Tue, 2 Feb 2021 13:45:58 -0800 > > > -Subject: [PATCH] x86: Require full ISA support for x86-64 level > > > marker [BZ #27318] > > > - > > > -Since -march=sandybridge enables ISAs in x86-64 ISA level v3, > > > the v3 > > > -marker is set on libc.so. We couldn't set the needed ISA marker > > > to v2 > > > -since this libc won't run on all v2 machines. Technically, the > > > v3 marker > > > -is correct. But the resulting libc.so won't run on Sandy > > > Brigde, which > > > -is a v2 machine, even when libc is compiled with - > > > march=sandybridge: > > > - > > > -$ ./elf/ld.so ./libc.so > > > -./libc.so: (p) CPU ISA level is lower than required: needed: 7; > > > got: 3 > > > - > > > -Instead, we require full ISA support for x86-64 level marker and > > > disable > > > -x86-64 level marker for -march=sandybridge which enables ISAs > > > between v2 > > > -and v3. > > > - > > > -Upstream-Status: Submitted > > > [https://sourceware.org/pipermail/libc-alpha/2021-February/122297.html > > > ] > > > -Signed-off-by: Khem Raj <raj.k...@gmail.com> > > > ---- > > > - > > > - sysdeps/x86/configure | 7 ++++++- > > > - sysdeps/x86/configure.ac | 2 +- > > > - sysdeps/x86/isa-level.c | 21 ++++++++++++++++++++- > > > - 3 files changed, 27 insertions(+), 3 deletions(-) > > > - > > > -diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure > > > -index 5e32dc62b3..5b20646843 100644 > > > ---- a/sysdeps/x86/configure > > > -+++ b/sysdeps/x86/configure > > > -@@ -133,7 +133,12 @@ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS - > > > nostartfiles -nostdlib -r -o conftest c > > > - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 > > > - test $ac_status = 0; }; }; then > > > - count=`LC_ALL=C $READELF -n conftest | grep > > > NT_GNU_PROPERTY_TYPE_0 | wc -l` > > > -- if test "$count" = 1; then > > > -+ if test "$count" = 1 && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS > > > -DINCLUDE_X86_ISA_LEVEL -S -o conftest.s $srcdir/sysdeps/x86/isa- > > > level.c' > > > -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: > > > \"$ac_try\""; } >&5 > > > -+ (eval $ac_try) 2>&5 > > > -+ ac_status=$? > > > -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 > > > -+ test $ac_status = 0; }; }; then > > > - libc_cv_include_x86_isa_level=yes > > > - fi > > > - fi > > > -diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac > > > -index f94088f377..54ecd33d2c 100644 > > > ---- a/sysdeps/x86/configure.ac > > > -+++ b/sysdeps/x86/configure.ac > > > -@@ -100,7 +100,7 @@ EOF > > > - libc_cv_include_x86_isa_level=no > > > - if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -nostartfiles - > > > nostdlib -r -o conftest conftest1.S conftest2.S); then > > > - count=`LC_ALL=C $READELF -n conftest | grep > > > NT_GNU_PROPERTY_TYPE_0 | wc -l` > > > -- if test "$count" = 1; then > > > -+ if test "$count" = 1 && AC_TRY_COMMAND(${CC-cc} $CFLAGS > > > $CPPFLAGS -DINCLUDE_X86_ISA_LEVEL -S -o conftest.s > > > $srcdir/sysdeps/x86/isa-level.c); then > > > - libc_cv_include_x86_isa_level=yes > > > - fi > > > - fi > > > -diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c > > > -index aaf524cb56..7f83449061 100644 > > > ---- a/sysdeps/x86/isa-level.c > > > -+++ b/sysdeps/x86/isa-level.c > > > -@@ -25,12 +25,17 @@ > > > - License along with the GNU C Library; if not, see > > > - <https://www.gnu.org/licenses/>. */ > > > - > > > --#include <elf.h> > > > -+#ifdef _LIBC > > > -+# include <elf.h> > > > -+#endif > > > - > > > - /* ELF program property for x86 ISA level. */ > > > - #ifdef INCLUDE_X86_ISA_LEVEL > > > - # if defined __x86_64__ || defined __FXSR__ || !defined > > > _SOFT_FLOAT \ > > > - || defined __MMX__ || defined __SSE__ || defined __SSE2__ > > > -+# if !defined __SSE__ || !defined __SSE2__ > > > -+# error "Missing ISAs for x86-64 ISA level baseline" > > > -+# endif > > > - # define ISA_BASELINE GNU_PROPERTY_X86_ISA_1_BASELINE > > > - # else > > > - # define ISA_BASELINE 0 > > > -@@ -40,6 +45,11 @@ > > > - || (defined __x86_64__ && defined __LAHF_SAHF__) \ > > > - || defined __POPCNT__ || defined __SSE3__ \ > > > - || defined __SSSE3__ || defined __SSE4_1__ || defined > > > __SSE4_2__ > > > -+# if !defined __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 \ > > > -+ || !defined __POPCNT__ || !defined __SSE3__ \ > > > -+ || !defined __SSSE3__ || !defined __SSE4_1__ || !defined > > > __SSE4_2__ > > > -+# error "Missing ISAs for x86-64 ISA level v2" > > > -+# endif > > > - # define ISA_V2 GNU_PROPERTY_X86_ISA_1_V2 > > > - # else > > > - # define ISA_V2 0 > > > -@@ -48,6 +58,10 @@ > > > - # if defined __AVX__ || defined __AVX2__ || defined __F16C__ \ > > > - || defined __FMA__ || defined __LZCNT__ || defined > > > __MOVBE__ \ > > > - || defined __XSAVE__ > > > -+# if !defined __AVX__ || !defined __AVX2__ || !defined __F16C__ > > > \ > > > -+ || !defined __FMA__ || !defined __LZCNT__ > > > -+# error "Missing ISAs for x86-64 ISA level v3" > > > -+# endif > > > - # define ISA_V3 GNU_PROPERTY_X86_ISA_1_V3 > > > - # else > > > - # define ISA_V3 0 > > > -@@ -55,6 +69,11 @@ > > > - > > > - # if defined __AVX512F__ || defined __AVX512BW__ || defined > > > __AVX512CD__ \ > > > - || defined __AVX512DQ__ || defined __AVX512VL__ > > > -+# if !defined __AVX512F__ || !defined __AVX512BW__ \ > > > -+ || !defined __AVX512CD__ || !defined __AVX512DQ__ \ > > > -+ || !defined __AVX512VL__ > > > -+# error "Missing ISAs for x86-64 ISA level v4" > > > -+# endif > > > - # define ISA_V4 GNU_PROPERTY_X86_ISA_1_V4 > > > - # else > > > - # define ISA_V4 0 > > > diff --git a/meta/recipes-core/glibc/glibc/0032-string-Work- > > > around-GCC-PR-98512-in-rawmemchr.patch b/meta/recipes- > > > core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in- > > > rawmemchr.patch > > > deleted file mode 100644 > > > index e904b28a05..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC- > > > PR-98512-in-rawmemchr.patch > > > +++ /dev/null > > > @@ -1,58 +0,0 @@ > > > -From 044e603b698093cf48f6e6229e0b66acf05227e4 Mon Sep 17 > > > 00:00:00 2001 > > > -From: Florian Weimer <fwei...@redhat.com> > > > -Date: Fri, 19 Feb 2021 13:29:00 +0100 > > > -Subject: [PATCH] string: Work around GCC PR 98512 in rawmemchr > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=044e603b698093cf48f6e6229e0b66acf05227e4 > > > ] > > > -Signed-off-by: Khem Raj <raj.k...@gmail.com> > > > ---- > > > - string/rawmemchr.c | 26 +++++++++++++++----------- > > > - 1 file changed, 15 insertions(+), 11 deletions(-) > > > - > > > -diff --git a/string/rawmemchr.c b/string/rawmemchr.c > > > -index 59bbeeaa42..b8523118e5 100644 > > > ---- a/string/rawmemchr.c > > > -+++ b/string/rawmemchr.c > > > -@@ -22,24 +22,28 @@ > > > - # define RAWMEMCHR __rawmemchr > > > - #endif > > > - > > > --/* Find the first occurrence of C in S. */ > > > --void * > > > --RAWMEMCHR (const void *s, int c) > > > --{ > > > -- DIAG_PUSH_NEEDS_COMMENT; > > > -+/* The pragmata should be nested inside RAWMEMCHR below, but > > > that > > > -+ triggers GCC PR 98512. */ > > > -+DIAG_PUSH_NEEDS_COMMENT; > > > - #if __GNUC_PREREQ (7, 0) > > > -- /* GCC 8 warns about the size passed to memchr being larger > > > than > > > -- PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */ > > > -- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow="); > > > -+/* GCC 8 warns about the size passed to memchr being larger > > > than > > > -+ PTRDIFF_MAX; the use of SIZE_MAX is deliberate here. */ > > > -+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow="); > > > - #endif > > > - #if __GNUC_PREREQ (11, 0) > > > -- /* Likewise GCC 11, with a different warning option. */ > > > -- DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread"); > > > -+/* Likewise GCC 11, with a different warning option. */ > > > -+DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread"); > > > - #endif > > > -+ > > > -+/* Find the first occurrence of C in S. */ > > > -+void * > > > -+RAWMEMCHR (const void *s, int c) > > > -+{ > > > - if (c != '\0') > > > - return memchr (s, c, (size_t)-1); > > > -- DIAG_POP_NEEDS_COMMENT; > > > - return (char *)s + strlen (s); > > > - } > > > - libc_hidden_def (__rawmemchr) > > > - weak_alias (__rawmemchr, rawmemchr) > > > -+ > > > -+DIAG_POP_NEEDS_COMMENT; > > > --- > > > -2.30.1 > > > - > > > diff --git a/meta/recipes-core/glibc/glibc/0033-x86-Handle- > > > _SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch b/meta/recipes- > > > core/glibc/glibc/0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ- > > > 27444.patch > > > deleted file mode 100644 > > > index 3a004e227f..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/0033-x86-Handle- > > > _SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch > > > +++ /dev/null > > > @@ -1,185 +0,0 @@ > > > -From 750b00a1ddae220403fd892a6fd4e0791ffd154a Mon Sep 17 > > > 00:00:00 2001 > > > -From: "H.J. Lu" <hjl.to...@gmail.com> > > > -Date: Fri, 18 Sep 2020 07:55:14 -0700 > > > -Subject: [PATCH] x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ > > > #27444] > > > - > > > - x86: Move x86 processor cache info to cpu_features > > > - > > > -missed _SC_LEVEL1_ICACHE_LINESIZE. > > > - > > > -1. Add level1_icache_linesize to struct cpu_features. > > > -2. Initialize level1_icache_linesize by calling handle_intel, > > > -handle_zhaoxin and handle_amd with _SC_LEVEL1_ICACHE_LINESIZE. > > > -3. Return level1_icache_linesize for _SC_LEVEL1_ICACHE_LINESIZE. > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/bugzilla/show_bug.cgi?id=27444] > > > -Signed-off-by: Andrei Gherzan <andrei.gher...@huawei.com> > > > ---- > > > - sysdeps/x86/Makefile | 8 +++ > > > - sysdeps/x86/cacheinfo.c | 3 + > > > - sysdeps/x86/dl-cacheinfo.h | 6 ++ > > > - sysdeps/x86/include/cpu-features.h | 2 + > > > - .../x86/tst-sysconf-cache-linesize-static.c | 1 + > > > - sysdeps/x86/tst-sysconf-cache-linesize.c | 57 > > > +++++++++++++++++++ > > > - 6 files changed, 77 insertions(+) > > > - create mode 100644 sysdeps/x86/tst-sysconf-cache-linesize- > > > static.c > > > - create mode 100644 sysdeps/x86/tst-sysconf-cache-linesize.c > > > - > > > -diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile > > > -index dd82674342..d231263051 100644 > > > ---- a/sysdeps/x86/Makefile > > > -+++ b/sysdeps/x86/Makefile > > > -@@ -208,3 +208,11 @@ $(objpfx)check-cet.out: > > > $(..)sysdeps/x86/check-cet.awk \ > > > - generated += check-cet.out > > > - endif > > > - endif > > > -+ > > > -+ifeq ($(subdir),posix) > > > -+tests += \ > > > -+ tst-sysconf-cache-linesize \ > > > -+ tst-sysconf-cache-linesize-static > > > -+tests-static += \ > > > -+ tst-sysconf-cache-linesize-static > > > -+endif > > > -diff --git a/sysdeps/x86/cacheinfo.c b/sysdeps/x86/cacheinfo.c > > > -index 7b8df45e3b..5ea4723ca6 100644 > > > ---- a/sysdeps/x86/cacheinfo.c > > > -+++ b/sysdeps/x86/cacheinfo.c > > > -@@ -32,6 +32,9 @@ __cache_sysconf (int name) > > > - case _SC_LEVEL1_ICACHE_SIZE: > > > - return cpu_features->level1_icache_size; > > > - > > > -+ case _SC_LEVEL1_ICACHE_LINESIZE: > > > -+ return cpu_features->level1_icache_linesize; > > > -+ > > > - case _SC_LEVEL1_DCACHE_SIZE: > > > - return cpu_features->level1_dcache_size; > > > - > > > -diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl- > > > cacheinfo.h > > > -index a31fa0783a..7cd00b92f1 100644 > > > ---- a/sysdeps/x86/dl-cacheinfo.h > > > -+++ b/sysdeps/x86/dl-cacheinfo.h > > > -@@ -707,6 +707,7 @@ dl_init_cacheinfo (struct cpu_features > > > *cpu_features) > > > - long int core; > > > - unsigned int threads = 0; > > > - unsigned long int level1_icache_size = -1; > > > -+ unsigned long int level1_icache_linesize = -1; > > > - unsigned long int level1_dcache_size = -1; > > > - unsigned long int level1_dcache_assoc = -1; > > > - unsigned long int level1_dcache_linesize = -1; > > > -@@ -726,6 +727,8 @@ dl_init_cacheinfo (struct cpu_features > > > *cpu_features) > > > - > > > - level1_icache_size > > > - = handle_intel (_SC_LEVEL1_ICACHE_SIZE, cpu_features); > > > -+ level1_icache_linesize > > > -+ = handle_intel (_SC_LEVEL1_ICACHE_LINESIZE, > > > cpu_features); > > > - level1_dcache_size = data; > > > - level1_dcache_assoc > > > - = handle_intel (_SC_LEVEL1_DCACHE_ASSOC, cpu_features); > > > -@@ -753,6 +756,7 @@ dl_init_cacheinfo (struct cpu_features > > > *cpu_features) > > > - shared = handle_zhaoxin (_SC_LEVEL3_CACHE_SIZE); > > > - > > > - level1_icache_size = handle_zhaoxin > > > (_SC_LEVEL1_ICACHE_SIZE); > > > -+ level1_icache_linesize = handle_zhaoxin > > > (_SC_LEVEL1_ICACHE_LINESIZE); > > > - level1_dcache_size = data; > > > - level1_dcache_assoc = handle_zhaoxin > > > (_SC_LEVEL1_DCACHE_ASSOC); > > > - level1_dcache_linesize = handle_zhaoxin > > > (_SC_LEVEL1_DCACHE_LINESIZE); > > > -@@ -772,6 +776,7 @@ dl_init_cacheinfo (struct cpu_features > > > *cpu_features) > > > - shared = handle_amd (_SC_LEVEL3_CACHE_SIZE); > > > - > > > - level1_icache_size = handle_amd (_SC_LEVEL1_ICACHE_SIZE); > > > -+ level1_icache_linesize = handle_amd > > > (_SC_LEVEL1_ICACHE_LINESIZE); > > > - level1_dcache_size = data; > > > - level1_dcache_assoc = handle_amd > > > (_SC_LEVEL1_DCACHE_ASSOC); > > > - level1_dcache_linesize = handle_amd > > > (_SC_LEVEL1_DCACHE_LINESIZE); > > > -@@ -833,6 +838,7 @@ dl_init_cacheinfo (struct cpu_features > > > *cpu_features) > > > - } > > > - > > > - cpu_features->level1_icache_size = level1_icache_size; > > > -+ cpu_features->level1_icache_linesize = > > > level1_icache_linesize; > > > - cpu_features->level1_dcache_size = level1_dcache_size; > > > - cpu_features->level1_dcache_assoc = level1_dcache_assoc; > > > - cpu_features->level1_dcache_linesize = > > > level1_dcache_linesize; > > > -diff --git a/sysdeps/x86/include/cpu-features.h > > > b/sysdeps/x86/include/cpu-features.h > > > -index 624736b40e..39a3f4f311 100644 > > > ---- a/sysdeps/x86/include/cpu-features.h > > > -+++ b/sysdeps/x86/include/cpu-features.h > > > -@@ -874,6 +874,8 @@ struct cpu_features > > > - unsigned long int rep_stosb_threshold; > > > - /* _SC_LEVEL1_ICACHE_SIZE. */ > > > - unsigned long int level1_icache_size; > > > -+ /* _SC_LEVEL1_ICACHE_LINESIZE. */ > > > -+ unsigned long int level1_icache_linesize; > > > - /* _SC_LEVEL1_DCACHE_SIZE. */ > > > - unsigned long int level1_dcache_size; > > > - /* _SC_LEVEL1_DCACHE_ASSOC. */ > > > -diff --git a/sysdeps/x86/tst-sysconf-cache-linesize-static.c > > > b/sysdeps/x86/tst-sysconf-cache-linesize-static.c > > > -new file mode 100644 > > > -index 0000000000..152ae68821 > > > ---- /dev/null > > > -+++ b/sysdeps/x86/tst-sysconf-cache-linesize-static.c > > > -@@ -0,0 +1 @@ > > > -+#include "tst-sysconf-cache-linesize.c" > > > -diff --git a/sysdeps/x86/tst-sysconf-cache-linesize.c > > > b/sysdeps/x86/tst-sysconf-cache-linesize.c > > > -new file mode 100644 > > > -index 0000000000..642dbde5d2 > > > ---- /dev/null > > > -+++ b/sysdeps/x86/tst-sysconf-cache-linesize.c > > > -@@ -0,0 +1,57 @@ > > > -+/* Test system cache line sizes. > > > -+ Copyright (C) 2021 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 > > > -+ <https://www.gnu.org/licenses/>. */ > > > -+ > > > -+#include <stdio.h> > > > -+#include <stdlib.h> > > > -+#include <unistd.h> > > > -+#include <array_length.h> > > > -+ > > > -+static struct > > > -+{ > > > -+ const char *name; > > > -+ int _SC_val; > > > -+} sc_options[] = > > > -+ { > > > -+#define N(name) { "_SC_"#name, _SC_##name } > > > -+ N (LEVEL1_ICACHE_LINESIZE), > > > -+ N (LEVEL1_DCACHE_LINESIZE), > > > -+ N (LEVEL2_CACHE_LINESIZE) > > > -+ }; > > > -+ > > > -+static int > > > -+do_test (void) > > > -+{ > > > -+ int result = EXIT_SUCCESS; > > > -+ > > > -+ for (int i = 0; i < array_length (sc_options); ++i) > > > -+ { > > > -+ long int scret = sysconf (sc_options[i]._SC_val); > > > -+ if (scret < 0) > > > -+ { > > > -+ printf ("sysconf (%s) returned < 0 (%ld)\n", > > > -+ sc_options[i].name, scret); > > > -+ result = EXIT_FAILURE; > > > -+ } > > > -+ else > > > -+ printf ("sysconf (%s): %ld\n", sc_options[i].name, > > > scret); > > > -+ } > > > -+ > > > -+ return result; > > > -+} > > > -+ > > > -+#include <support/test-driver.c> > > > diff --git a/meta/recipes-core/glibc/glibc/CVE-2021-27318- > > > revert.patch b/meta/recipes-core/glibc/glibc/CVE-2021-27318- > > > revert.patch > > > new file mode 100644 > > > index 0000000000..2f08a90dd0 > > > --- /dev/null > > > +++ b/meta/recipes-core/glibc/glibc/CVE-2021-27318-revert.patch > > > @@ -0,0 +1,174 @@ > > > +Since the full ISA set used in an ELF binary is unknown to > > > compiler, > > > +an x86-64 ISA level marker indicates the minimum, not maximum, > > > ISA set > > > +required to run such an ELF binary. We never guarantee a > > > library with > > > +an x86-64 ISA level v3 marker doesn't contain other ISAs beyond > > > x86-64 > > > +ISA level v3, like AVX VNNI. We check the x86-64 ISA level > > > marker for > > > +the minimum ISA set. Since -march=sandybridge enables only some > > > ISAs > > > +in x86-64 ISA level v3, we should set the needed ISA marker to > > > v2. > > > +Otherwise, libc is compiled with -march=sandybridge will fail to > > > run on > > > +Sandy Bridge: > > > + > > > +$ ./elf/ld.so ./libc.so > > > +./libc.so: (p) CPU ISA level is lower than required: needed: 7; > > > got: 3 > > > + > > > +Set the minimum, instead of maximum, x86-64 ISA level marker > > > should have > > > +no impact on the b-hwcaps directory assignment logic in ldconfig > > > nor > > > +ld.so. > > > + > > > +(cherry picked from commit > > > 339bf918ea4830fb35614632e96f3aab3237adce) > > > +--- > > > + config.h.in | 6 ++++++ > > > + sysdeps/x86/configure | 28 ++++++++++++++++++++++++++++ > > > + sysdeps/x86/configure.ac | 16 ++++++++++++++++ > > > + sysdeps/x86/isa-level.c | 25 ++++++++++++++----------- > > > + 4 files changed, 64 insertions(+), 11 deletions(-) > > > + > > > +diff --git a/config.h.in b/config.h.in > > > +--- a/config.h.in 2021-10-16 03:28:49.447573081 -0700 > > > ++++ b/config.h.in 2021-10-16 03:29:38.626741181 -0700 > > > +@@ -275,4 +275,10 @@ > > > + /* Define if x86 ISA level should be included in shared > > > libraries. */ > > > + #undef INCLUDE_X86_ISA_LEVEL > > > + > > > ++/* Define if -msahf is enabled by default on x86. */ > > > ++#undef HAVE_X86_LAHF_SAHF > > > ++ > > > ++/* Define if -mmovbe is enabled by default on x86. */ > > > ++#undef HAVE_X86_MOVBE > > > ++ > > > + #endif > > > +diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure > > > +--- a/sysdeps/x86/configure 2021-10-16 03:28:49.587570713 - > > > 0700 > > > ++++ b/sysdeps/x86/configure 2021-10-16 03:29:39.330729277 - > > > 0700 > > > +@@ -126,6 +126,8 @@ cat > conftest2.S <<EOF > > > + 4: > > > + EOF > > > + libc_cv_include_x86_isa_level=no > > > ++libc_cv_have_x86_lahf_sahf=no > > > ++libc_cv_have_x86_movbe=no > > > + if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -nostartfiles -nostdlib > > > -r -o conftest conftest1.S conftest2.S' > > > + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: > > > \"$ac_try\""; } >&5 > > > + (eval $ac_try) 2>&5 > > > +@@ -135,6 +137,24 @@ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS > > > + count=`LC_ALL=C $READELF -n conftest | grep > > > NT_GNU_PROPERTY_TYPE_0 | wc -l` > > > + if test "$count" = 1; then > > > + libc_cv_include_x86_isa_level=yes > > > ++ cat > conftest.c <<EOF > > > ++EOF > > > ++ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fverbose-asm -S -o > > > - conftest.c' > > > ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: > > > \"$ac_try\""; } >&5 > > > ++ (eval $ac_try) 2>&5 > > > ++ ac_status=$? > > > ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 > > > ++ test $ac_status = 0; }; } | grep -q "\-msahf"; then > > > ++ libc_cv_have_x86_lahf_sahf=yes > > > ++ fi > > > ++ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fverbose-asm -S -o > > > - conftest.c' > > > ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: > > > \"$ac_try\""; } >&5 > > > ++ (eval $ac_try) 2>&5 > > > ++ ac_status=$? > > > ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 > > > ++ test $ac_status = 0; }; } | grep -q "\-mmovbe"; then > > > ++ libc_cv_have_x86_movbe=yes > > > ++ fi > > > + fi > > > + fi > > > + rm -f conftest* > > > +@@ -145,5 +165,13 @@ if test $libc_cv_include_x86_isa_level = > > > + $as_echo "#define INCLUDE_X86_ISA_LEVEL 1" >>confdefs.h > > > + > > > + fi > > > ++if test $libc_cv_have_x86_lahf_sahf = yes; then > > > ++ $as_echo "#define HAVE_X86_LAHF_SAHF 1" >>confdefs.h > > > ++ > > > ++fi > > > ++if test $libc_cv_have_x86_movbe = yes; then > > > ++ $as_echo "#define HAVE_X86_MOVBE 1" >>confdefs.h > > > ++ > > > ++fi > > > + config_vars="$config_vars > > > + enable-x86-isa-level = $libc_cv_include_x86_isa_level" > > > +diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac > > > +--- a/sysdeps/x86/configure.ac 2021-10-16 03:28:49.587570713 - > > > 0700 > > > ++++ b/sysdeps/x86/configure.ac 2021-10-16 03:29:40.038717306 - > > > 0700 > > > +@@ -98,14 +98,30 @@ cat > conftest2.S <<EOF > > > + 4: > > > + EOF > > > + libc_cv_include_x86_isa_level=no > > > ++libc_cv_have_x86_lahf_sahf=no > > > ++libc_cv_have_x86_movbe=no > > > + if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -nostartfiles - > > > nostdlib -r -o conftest conftest1.S conftest2.S); then > > > + count=`LC_ALL=C $READELF -n conftest | grep > > > NT_GNU_PROPERTY_TYPE_0 | wc -l` > > > + if test "$count" = 1; then > > > + libc_cv_include_x86_isa_level=yes > > > ++ cat > conftest.c <<EOF > > > ++EOF > > > ++ if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -fverbose-asm > > > -S -o - conftest.c) | grep -q "\-msahf"; then > > > ++ libc_cv_have_x86_lahf_sahf=yes > > > ++ fi > > > ++ if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -fverbose-asm > > > -S -o - conftest.c) | grep -q "\-mmovbe"; then > > > ++ libc_cv_have_x86_movbe=yes > > > ++ fi > > > + fi > > > + fi > > > + rm -f conftest*]) > > > + if test $libc_cv_include_x86_isa_level = yes; then > > > + AC_DEFINE(INCLUDE_X86_ISA_LEVEL) > > > + fi > > > ++if test $libc_cv_have_x86_lahf_sahf = yes; then > > > ++ AC_DEFINE(HAVE_X86_LAHF_SAHF) > > > ++fi > > > ++if test $libc_cv_have_x86_movbe = yes; then > > > ++ AC_DEFINE(HAVE_X86_MOVBE) > > > ++fi > > > + LIBC_CONFIG_VAR([enable-x86-isa-level], > > > [$libc_cv_include_x86_isa_level]) > > > +diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c > > > +--- a/sysdeps/x86/isa-level.c 2021-10-16 03:28:49.587570713 - > > > 0700 > > > ++++ b/sysdeps/x86/isa-level.c 2021-10-16 03:29:40.766704997 - > > > 0700 > > > +@@ -29,32 +29,35 @@ > > > + > > > + /* ELF program property for x86 ISA level. */ > > > + #ifdef INCLUDE_X86_ISA_LEVEL > > > +-# if defined __x86_64__ || defined __FXSR__ || !defined > > > _SOFT_FLOAT \ > > > +- || defined __MMX__ || defined __SSE__ || defined __SSE2__ > > > ++# if defined __SSE__ && defined __SSE2__ > > > ++/* NB: ISAs, excluding MMX, in x86-64 ISA level baseline are > > > used. */ > > > + # define ISA_BASELINE GNU_PROPERTY_X86_ISA_1_BASELINE > > > + # else > > > + # define ISA_BASELINE 0 > > > + # endif > > > + > > > +-# if defined __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 \ > > > +- || (defined __x86_64__ && defined __LAHF_SAHF__) \ > > > +- || defined __POPCNT__ || defined __SSE3__ \ > > > +- || defined __SSSE3__ || defined __SSE4_1__ || defined > > > __SSE4_2__ > > > ++# if ISA_BASELINE && defined > > > __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 \ > > > ++ && defined HAVE_X86_LAHF_SAHF && defined __POPCNT__ \ > > > ++ && defined __SSE3__ && defined __SSSE3__ && defined > > > __SSE4_1__ \ > > > ++ && defined __SSE4_2__ > > > ++/* NB: ISAs in x86-64 ISA level v2 are used. */ > > > + # define ISA_V2 GNU_PROPERTY_X86_ISA_1_V2 > > > + # else > > > + # define ISA_V2 0 > > > + # endif > > > + > > > +-# if defined __AVX__ || defined __AVX2__ || defined __F16C__ \ > > > +- || defined __FMA__ || defined __LZCNT__ || defined > > > __MOVBE__ \ > > > +- || defined __XSAVE__ > > > ++# if ISA_V2 && defined __AVX__ && defined __AVX2__ && defined > > > __F16C__ \ > > > ++ && defined __FMA__ && defined __LZCNT__ && defined > > > HAVE_X86_MOVBE > > > ++/* NB: ISAs in x86-64 ISA level v3 are used. */ > > > + # define ISA_V3 GNU_PROPERTY_X86_ISA_1_V3 > > > + # else > > > + # define ISA_V3 0 > > > + # endif > > > + > > > +-# if defined __AVX512F__ || defined __AVX512BW__ || defined > > > __AVX512CD__ \ > > > +- || defined __AVX512DQ__ || defined __AVX512VL__ > > > ++# if ISA_V3 && defined __AVX512F__ && defined __AVX512BW__ \ > > > ++ && defined __AVX512CD__ && defined __AVX512DQ__ \ > > > ++ && defined __AVX512VL__ > > > ++/* NB: ISAs in x86-64 ISA level v4 are used. */ > > > + # define ISA_V4 GNU_PROPERTY_X86_ISA_1_V4 > > > + # else > > > + # define ISA_V4 0 > > > diff --git a/meta/recipes-core/glibc/glibc/CVE-2021-27645.patch > > > b/meta/recipes-core/glibc/glibc/CVE-2021-27645.patch > > > deleted file mode 100644 > > > index 26c5c0d2a9..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/CVE-2021-27645.patch > > > +++ /dev/null > > > @@ -1,51 +0,0 @@ > > > -From dca565886b5e8bd7966e15f0ca42ee5cff686673 Mon Sep 17 > > > 00:00:00 2001 > > > -From: DJ Delorie <d...@redhat.com> > > > -Date: Thu, 25 Feb 2021 16:08:21 -0500 > > > -Subject: [PATCH] nscd: Fix double free in netgroupcache [BZ > > > #27462] > > > - > > > -In commit 745664bd798ec8fd50438605948eea594179fba1 a use-after- > > > free > > > -was fixed, but this led to an occasional double-free. This > > > patch > > > -tracks the "live" allocation better. > > > - > > > -Tested manually by a third party. > > > - > > > -Related: RHBZ 1927877 > > > - > > > -Reviewed-by: Siddhesh Poyarekar <siddh...@sourceware.org> > > > -Reviewed-by: Carlos O'Donell <car...@redhat.com> > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=dca565886b5e8bd7966e15f0ca42ee5cff686673 > > > ] > > > - > > > -CVE: CVE-2021-27645 > > > - > > > -Reviewed-by: Carlos O'Donell <car...@redhat.com> > > > -Signed-off-by: Khairul Rohaizzat Jamaluddin > > > <khairul.rohaizzat.jamalud...@intel.com> > > > ---- > > > - nscd/netgroupcache.c | 4 ++-- > > > - 1 file changed, 2 insertions(+), 2 deletions(-) > > > - > > > -diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c > > > -index dba6ceec1b..ad2daddafd 100644 > > > ---- a/nscd/netgroupcache.c > > > -+++ b/nscd/netgroupcache.c > > > -@@ -248,7 +248,7 @@ addgetnetgrentX (struct database_dyn *db, > > > int fd, request_header *req, > > > - : NULL); > > > - ndomain = (ndomain ? newbuf + > > > ndomaindiff > > > - : NULL); > > > -- buffer = newbuf; > > > -+ *tofreep = buffer = newbuf; > > > - } > > > - > > > - nhost = memcpy (buffer + bufused, > > > -@@ -319,7 +319,7 @@ addgetnetgrentX (struct database_dyn *db, > > > int fd, request_header *req, > > > - else if (status == NSS_STATUS_TRYAGAIN && e > > > == ERANGE) > > > - { > > > - buflen *= 2; > > > -- buffer = xrealloc (buffer, buflen); > > > -+ *tofreep = buffer = xrealloc (buffer, > > > buflen); > > > - } > > > - else if (status == NSS_STATUS_RETURN > > > - || status == NSS_STATUS_NOTFOUND > > > --- > > > -2.27.0 > > > - > > > diff --git a/meta/recipes-core/glibc/glibc/CVE-2021-33574_1.patch > > > b/meta/recipes-core/glibc/glibc/CVE-2021-33574_1.patch > > > deleted file mode 100644 > > > index 21f07ac303..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/CVE-2021-33574_1.patch > > > +++ /dev/null > > > @@ -1,76 +0,0 @@ > > > -From 709674ec86c3c6da4f0995897f6b0205c16d049d Mon Sep 17 > > > 00:00:00 2001 > > > -From: Andreas Schwab <sch...@linux-m68k.org> > > > -Date: Thu, 27 May 2021 12:49:47 +0200 > > > -Subject: [PATCH] Use __pthread_attr_copy in mq_notify (bug > > > 27896) > > > - > > > -Make a deep copy of the pthread attribute object to remove a > > > potential > > > -use-after-free issue. > > > - > > > -Upstream-Status: Backport > > > - > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=42d359350510506b87101cf77202fefcbfc790cb > > > ] > > > - > > > -CVE: > > > -CVE-2021-33574 > > > - > > > -Reviewed-by: Siddhesh Poyarekar <siddh...@sourceware.org> > > > -Signed-off-by: Khairul Rohaizzat Jamaluddin > > > <khairul.rohaizzat.jamalud...@intel.com> > > > ---- > > > - NEWS | 4 ++++ > > > - sysdeps/unix/sysv/linux/mq_notify.c | 15 ++++++++++----- > > > - 2 files changed, 14 insertions(+), 5 deletions(-) > > > - > > > -diff --git a/NEWS b/NEWS > > > -index 71f5d20324..017d656433 100644 > > > ---- a/NEWS > > > -+++ b/NEWS > > > -@@ -118,6 +118,10 @@ Security related changes: > > > - CVE-2019-25013: A buffer overflow has been fixed in the iconv > > > function when > > > - invoked with EUC-KR input containing invalid multibyte input > > > sequences. > > > - > > > -+ CVE-2021-33574: The mq_notify function has a potential use- > > > after-free > > > -+ issue when using a notification type of SIGEV_THREAD and a > > > thread > > > -+ attribute with a non-default affinity mask. > > > -+ > > > - The following bugs are resolved with this release: > > > - > > > - [10635] libc: realpath portability patches > > > -diff --git a/sysdeps/unix/sysv/linux/mq_notify.c > > > b/sysdeps/unix/sysv/linux/mq_notify.c > > > -index cc575a0cdd..f7ddfe5a6c 100644 > > > ---- a/sysdeps/unix/sysv/linux/mq_notify.c > > > -+++ b/sysdeps/unix/sysv/linux/mq_notify.c > > > -@@ -133,8 +133,11 @@ helper_thread (void *arg) > > > - (void) __pthread_barrier_wait (¬ify_barrier); > > > - } > > > - else if (data.raw[NOTIFY_COOKIE_LEN - 1] == > > > NOTIFY_REMOVED) > > > -- /* The only state we keep is the copy of the thread > > > attributes. */ > > > -- free (data.attr); > > > -+ { > > > -+ /* The only state we keep is the copy of the thread > > > attributes. */ > > > -+ pthread_attr_destroy (data.attr); > > > -+ free (data.attr); > > > -+ } > > > - } > > > - return NULL; > > > - } > > > -@@ -255,8 +258,7 @@ mq_notify (mqd_t mqdes, const struct > > > sigevent *notification) > > > - if (data.attr == NULL) > > > - return -1; > > > - > > > -- memcpy (data.attr, notification->sigev_notify_attributes, > > > -- sizeof (pthread_attr_t)); > > > -+ __pthread_attr_copy (data.attr, notification- > > > >sigev_notify_attributes); > > > - } > > > - > > > - /* Construct the new request. */ > > > -@@ -270,7 +272,10 @@ mq_notify (mqd_t mqdes, const struct > > > sigevent *notification) > > > - > > > - /* If it failed, free the allocated memory. */ > > > - if (__glibc_unlikely (retval != 0)) > > > -- free (data.attr); > > > -+ { > > > -+ pthread_attr_destroy (data.attr); > > > -+ free (data.attr); > > > -+ } > > > - > > > - return retval; > > > - } > > > diff --git a/meta/recipes-core/glibc/glibc/CVE-2021-33574_2.patch > > > b/meta/recipes-core/glibc/glibc/CVE-2021-33574_2.patch > > > deleted file mode 100644 > > > index befccd7ac7..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/CVE-2021-33574_2.patch > > > +++ /dev/null > > > @@ -1,61 +0,0 @@ > > > -From 217b6dc298156bdb0d6aea9ea93e7e394a5ff091 Mon Sep 17 > > > 00:00:00 2001 > > > -From: Florian Weimer <fwei...@redhat.com> > > > -Date: Tue, 1 Jun 2021 17:51:41 +0200 > > > -Subject: [PATCH] Fix use of __pthread_attr_copy in mq_notify > > > (bug 27896) > > > - > > > -__pthread_attr_copy can fail and does not initialize the > > > attribute > > > -structure in that case. > > > - > > > -If __pthread_attr_copy is never called and there is no allocated > > > -attribute, pthread_attr_destroy should not be called, otherwise > > > -there is a null pointer dereference in rt/tst-mqueue6. > > > - > > > -Fixes commit 42d359350510506b87101cf77202fefcbfc790cb > > > -("Use __pthread_attr_copy in mq_notify (bug 27896)"). > > > - > > > -Reviewed-by: Siddhesh Poyarekar <siddh...@sourceware.org> > > > - > > > -Upstream-Status: Backport > > > - > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=217b6dc298156bdb0d6aea9ea93e7e394a5ff091 > > > ] > > > - > > > -CVE: > > > -CVE-2021-33574 > > > - > > > -Reviewed-by: Siddhesh Poyarekar <siddh...@sourceware.org> > > > -Signed-off-by: Khairul Rohaizzat Jamaluddin > > > <khairul.rohaizzat.jamalud...@intel.com> > > > ---- > > > - sysdeps/unix/sysv/linux/mq_notify.c | 11 +++++++++-- > > > - 1 file changed, 9 insertions(+), 2 deletions(-) > > > - > > > -diff --git a/sysdeps/unix/sysv/linux/mq_notify.c > > > b/sysdeps/unix/sysv/linux/mq_notify.c > > > -index f7ddfe5a6c..6f46d29d1d 100644 > > > ---- a/sysdeps/unix/sysv/linux/mq_notify.c > > > -+++ b/sysdeps/unix/sysv/linux/mq_notify.c > > > -@@ -258,7 +258,14 @@ mq_notify (mqd_t mqdes, const struct > > > sigevent *notification) > > > - if (data.attr == NULL) > > > - return -1; > > > - > > > -- __pthread_attr_copy (data.attr, notification- > > > >sigev_notify_attributes); > > > -+ int ret = __pthread_attr_copy (data.attr, > > > -+ notification- > > > >sigev_notify_attributes); > > > -+ if (ret != 0) > > > -+ { > > > -+ free (data.attr); > > > -+ __set_errno (ret); > > > -+ return -1; > > > -+ } > > > - } > > > - > > > - /* Construct the new request. */ > > > -@@ -271,7 +278,7 @@ mq_notify (mqd_t mqdes, const struct > > > sigevent *notification) > > > - int retval = INLINE_SYSCALL (mq_notify, 2, mqdes, &se); > > > - > > > - /* If it failed, free the allocated memory. */ > > > -- if (__glibc_unlikely (retval != 0)) > > > -+ if (retval != 0 && data.attr != NULL) > > > - { > > > - pthread_attr_destroy (data.attr); > > > - free (data.attr); > > > --- > > > -2.27.0 > > > - > > > diff --git a/meta/recipes-core/glibc/glibc/CVE-2021-35942.patch > > > b/meta/recipes-core/glibc/glibc/CVE-2021-35942.patch > > > deleted file mode 100644 > > > index 5cae1bc91c..0000000000 > > > --- a/meta/recipes-core/glibc/glibc/CVE-2021-35942.patch > > > +++ /dev/null > > > @@ -1,44 +0,0 @@ > > > -From 5adda61f62b77384718b4c0d8336ade8f2b4b35c Mon Sep 17 > > > 00:00:00 2001 > > > -From: Andreas Schwab <sch...@linux-m68k.org> > > > -Date: Fri, 25 Jun 2021 15:02:47 +0200 > > > -Subject: [PATCH] wordexp: handle overflow in positional > > > parameter number (bug > > > - 28011) > > > - > > > -Use strtoul instead of atoi so that overflow can be detected. > > > - > > > -Upstream-Status: Backport > > > [https://sourceware.org/git/?p=glibc.git;a=commit;h=5adda61f62b77384718b4c0d8336ade8f2b4b35c > > > ] > > > -CVE: CVE-2021-35942 > > > -Signed-off-by: Vinay Kumar <vinay.m.e...@gmail.com> > > > ---- > > > - posix/wordexp-test.c | 1 + > > > - posix/wordexp.c | 2 +- > > > - 2 files changed, 2 insertions(+), 1 deletion(-) > > > - > > > -diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c > > > -index f93a546d7e..9df02dbbb3 100644 > > > ---- a/posix/wordexp-test.c > > > -+++ b/posix/wordexp-test.c > > > -@@ -183,6 +183,7 @@ struct test_case_struct > > > - { 0, NULL, "$var", 0, 0, { NULL, }, IFS }, > > > - { 0, NULL, "\"\\n\"", 0, 1, { "\\n", }, IFS }, > > > - { 0, NULL, "", 0, 0, { NULL, }, IFS }, > > > -+ { 0, NULL, "${1234567890123456789012}", 0, 0, { NULL, }, > > > IFS }, > > > - > > > - /* Flags not already covered (testit() has special handling > > > for these) */ > > > - { 0, NULL, "one two", WRDE_DOOFFS, 2, { "one", "two", }, > > > IFS }, > > > -diff --git a/posix/wordexp.c b/posix/wordexp.c > > > -index bcbe96e48d..1f3b09f721 100644 > > > ---- a/posix/wordexp.c > > > -+++ b/posix/wordexp.c > > > -@@ -1399,7 +1399,7 @@ envsubst: > > > - /* Is it a numeric parameter? */ > > > - else if (isdigit (env[0])) > > > - { > > > -- int n = atoi (env); > > > -+ unsigned long n = strtoul (env, NULL, 10); > > > - > > > - if (n >= __libc_argc) > > > - /* Substitute NULL. */ > > > --- > > > -2.17.1 > > > - > > > diff --git a/meta/recipes-core/glibc/glibc_2.33.bb > > > b/meta/recipes-core/glibc/glibc_2.33.bb > > > index 57a60cb9d8..ad5e2b8eb1 100644 > > > --- a/meta/recipes-core/glibc/glibc_2.33.bb > > > +++ b/meta/recipes-core/glibc/glibc_2.33.bb > > > @@ -56,16 +56,6 @@ SRC_URI = > > > "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ > > > > > > file://0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch > > > \ > > > > > > file://0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch > > > \ > > > > > > file://0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch \ > > > - > > > file://0031-x86-Require-full-ISA-support-for-x86-64-level-marker.patch > > > \ > > > - > > > file://0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch \ > > > - > > > file://0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch > > > \ > > > - file://CVE-2021-27645.patch \ > > > - > > > file://0001-nptl-Remove-private-futex-optimization-BZ-27304.patch > > > \ > > > - file://CVE-2021-33574_1.patch \ > > > - file://CVE-2021-33574_2.patch \ > > > - file://CVE-2021-35942.patch \ > > > - file://0001-CVE-2021-38604.patch \ > > > - file://0002-CVE-2021-38604.patch \ > > > " > > > S = "${WORKDIR}/git" > > > B = "${WORKDIR}/build-${TARGET_SYS}" > > > -- > > > 2.31.1 > > > > > > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#157466): https://lists.openembedded.org/g/openembedded-core/message/157466 Mute This Topic: https://lists.openembedded.org/mt/86384691/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-