From 305d409f76388ed0afc46aec619b35bffe5446f5 Mon Sep 17 00:00:00 2001 From: Wang Mingyu Date: Tue, 19 Sep 2023 15:32:00 +0800 Subject: hwloc: upgrade 2.9.2 -> 2.9.3 CVE-2022-47022.patch removed since it's included in 2.9.3 Changelog: =========== * Handle Linux glibc allocation errors in binding routines (CVE-2022-47022). * Fix hwloc-calc when searching objects on heterogeneous memory platforms, thanks to Antoine Morvan for the report. * Fix hwloc_get_next_child() when there are some memory-side caches. * Don't crash if the topology is empty because Linux cgroups are wrong. * Improve some hwloc-bind warnings in case of command-line parsing errors. * Many documentation improvements all over the place, including: + hwloc_topology_restrict() and hwloc_topology_insert_group() may reorder children, causing the logical indexes of objects to change. Signed-off-by: Wang Mingyu Signed-off-by: Khem Raj --- .../hwloc/files/CVE-2022-47022.patch | 77 ---------------------- meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb | 30 --------- meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb | 28 ++++++++ 3 files changed, 28 insertions(+), 107 deletions(-) delete mode 100644 meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch delete mode 100644 meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb create mode 100644 meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb (limited to 'meta-oe') diff --git a/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch b/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch deleted file mode 100644 index c981b68b70..0000000000 --- a/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch +++ /dev/null @@ -1,77 +0,0 @@ -From ac1f8db9a0790d2bf153711ff4cbf6101f89aace Mon Sep 17 00:00:00 2001 -From: Brice Goglin -Date: Thu, 31 Aug 2023 09:28:34 +0000 -Subject: [PATCH] linux: handle glibc cpuset allocation failures - -Closes #544 -CVE-2022-47022 - -Signed-off-by: Brice Goglin - -CVE: CVE-2022-47022 - -Upstream-Status: Backport[https://github.com/open-mpi/hwloc/commit/ac1f8db9a0790d2bf153711ff4cbf6101f89aace] - -Signed-off-by: Yogita Urade ---- - hwloc/topology-linux.c | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/hwloc/topology-linux.c b/hwloc/topology-linux.c -index c7b63d2..fd6745e 100644 ---- a/hwloc/topology-linux.c -+++ b/hwloc/topology-linux.c -@@ -870,6 +870,8 @@ hwloc_linux_set_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, - - setsize = CPU_ALLOC_SIZE(last+1); - plinux_set = CPU_ALLOC(last+1); -+ if (!plinux_set) -+ return -1; - - CPU_ZERO_S(setsize, plinux_set); - hwloc_bitmap_foreach_begin(cpu, hwloc_set) -@@ -950,7 +952,10 @@ hwloc_linux_find_kernel_nr_cpus(hwloc_topology_t topology) - while (1) { - cpu_set_t *set = CPU_ALLOC(nr_cpus); - size_t setsize = CPU_ALLOC_SIZE(nr_cpus); -- int err = sched_getaffinity(0, setsize, set); /* always works, unless setsize is too small */ -+ int err; -+ if (!set) -+ return -1; /* caller will return an error, and we'll try again later */ -+ err = sched_getaffinity(0, setsize, set); /* always works, unless setsize is too small */ - CPU_FREE(set); - nr_cpus = setsize * 8; /* that's the value that was actually tested */ - if (!err) -@@ -978,8 +983,12 @@ hwloc_linux_get_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, - - /* find the kernel nr_cpus so as to use a large enough cpu_set size */ - kernel_nr_cpus = hwloc_linux_find_kernel_nr_cpus(topology); -+ if (kernel_nr_cpus < 0) -+ return -1; - setsize = CPU_ALLOC_SIZE(kernel_nr_cpus); - plinux_set = CPU_ALLOC(kernel_nr_cpus); -+ if (!plinux_set) -+ return -1; - - err = sched_getaffinity(tid, setsize, plinux_set); - -@@ -1333,6 +1342,8 @@ hwloc_linux_set_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_c - - setsize = CPU_ALLOC_SIZE(last+1); - plinux_set = CPU_ALLOC(last+1); -+ if (!plinux_set) -+ return -1; - - CPU_ZERO_S(setsize, plinux_set); - hwloc_bitmap_foreach_begin(cpu, hwloc_set) -@@ -1424,6 +1435,8 @@ hwloc_linux_get_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_b - - setsize = CPU_ALLOC_SIZE(last+1); - plinux_set = CPU_ALLOC(last+1); -+ if (!plinux_set) -+ return -1; - - err = pthread_getaffinity_np(tid, setsize, plinux_set); - if (err) { --- -2.35.5 diff --git a/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb b/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb deleted file mode 100644 index bcb615f73a..0000000000 --- a/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Portable Hardware Locality (hwloc) software package" -DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \ - provides a portable abstraction of the hierarchical topology of modern \ - architectures." -HOMEPAGE = "https://www.open-mpi.org/software/hwloc/" -SECTION = "base" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714" - -SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2 \ - file://CVE-2022-47022.patch \ - " -SRC_URI[sha256sum] = "0a87fdf677f8b00b567d229b6320bf6b25c693edaa43e0b85268d999d6b060cf" -UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v2.9/" - -inherit autotools bash-completion pkgconfig - -DEPENDS += "ncurses udev zlib" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}" - -PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" - -PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2" -PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo" -PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess" - -# Split hwloc library into separate subpackage -PACKAGES:prepend = " libhwloc " -FILES:libhwloc += "${libdir}/libhwloc.so.*" -RDEPENDS:${PN} += "libhwloc (= ${EXTENDPKGV})" diff --git a/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb b/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb new file mode 100644 index 0000000000..d72c5f2be5 --- /dev/null +++ b/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb @@ -0,0 +1,28 @@ +SUMMARY = "Portable Hardware Locality (hwloc) software package" +DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \ + provides a portable abstraction of the hierarchical topology of modern \ + architectures." +HOMEPAGE = "https://www.open-mpi.org/software/hwloc/" +SECTION = "base" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714" + +SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2" +SRC_URI[sha256sum] = "5c4062ce556f6d3451fc177ffb8673a2120f81df6835dea6a21a90fbdfff0dec" +UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v2.9/" + +inherit autotools bash-completion pkgconfig + +DEPENDS += "ncurses udev zlib" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}" + +PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" + +PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2" +PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo" +PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess" + +# Split hwloc library into separate subpackage +PACKAGES:prepend = " libhwloc " +FILES:libhwloc += "${libdir}/libhwloc.so.*" +RDEPENDS:${PN} += "libhwloc (= ${EXTENDPKGV})" -- cgit v1.2.3-54-g00ecf