commit:     a8c8e0a371b8b48481ff8d79c0841e20a8ce78d8
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 30 12:16:59 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Fri Jul 30 12:20:58 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8c8e0a3

sys-apps/util-linux-2.37.1: fix lscpu segfault on some arches

Observed on rv64 but could in princple happen elsewhere too.

Bug: https://bugs.gentoo.org/802606
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../files/util-linux-2.37.1-lscpu_nullptr.patch    | 26 ++++++++++++++++++++++
 sys-apps/util-linux/util-linux-2.37.1.ebuild       |  4 ++++
 2 files changed, 30 insertions(+)

diff --git a/sys-apps/util-linux/files/util-linux-2.37.1-lscpu_nullptr.patch 
b/sys-apps/util-linux/files/util-linux-2.37.1-lscpu_nullptr.patch
new file mode 100644
index 00000000000..bfb528cf1f1
--- /dev/null
+++ b/sys-apps/util-linux/files/util-linux-2.37.1-lscpu_nullptr.patch
@@ -0,0 +1,26 @@
+If you call a function which can return a null pointer you probably want
+to check the return value before attempting to dereference it. </sarcasm>
+
+--- a/sys-utils/lscpu.c
++++ b/sys-utils/lscpu.c
+@@ -966,7 +966,7 @@
+               *(p - 2) = '\0';
+               add_summary_s(tb, sec, _("CPU op-mode(s):"), buf);
+       }
+-      if (ct->addrsz)
++      if (ct && ct->addrsz)
+               add_summary_s(tb, sec, _("Address sizes:"), ct->addrsz);
+ #if !defined(WORDS_BIGENDIAN)
+       add_summary_s(tb, sec, _("Byte Order:"), "Little Endian");
+@@ -1008,9 +1008,9 @@
+       sec = NULL;
+ 
+       /* Section: cpu type description */
+-      if (ct->vendor)
++      if (ct && ct->vendor)
+               sec = add_summary_s(tb, NULL, _("Vendor ID:"), ct->vendor);
+-      if (ct->bios_vendor)
++      if (ct && ct->bios_vendor)
+               add_summary_s(tb, sec, _("BIOS Vendor ID:"), ct->bios_vendor);
+ 
+       for (i = 0; i < cxt->ncputypes; i++)

diff --git a/sys-apps/util-linux/util-linux-2.37.1.ebuild 
b/sys-apps/util-linux/util-linux-2.37.1.ebuild
index 141bdf409cb..c12359853f4 100644
--- a/sys-apps/util-linux/util-linux-2.37.1.ebuild
+++ b/sys-apps/util-linux/util-linux-2.37.1.ebuild
@@ -86,6 +86,10 @@ RESTRICT="!test? ( test )"
 
 S="${WORKDIR}/${MY_P}"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.37.1-lscpu_nullptr.patch
+)
+
 src_prepare() {
        default
 

Reply via email to