From 0d7cef3ddbd2aacbea8c11e8524a3de68dfb8ff6 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Fri, 30 Jul 2021 14:35:25 +0200
Subject: [PATCH] lscpu: fix NULL dereference

Fixes: https://github.com/karelzak/util-linux/issues/1401
Signed-off-by: Karel Zak <kzak@redhat.com>
---
 sys-utils/lscpu-cputype.c | 2 +-
 sys-utils/lscpu.c         | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c
index 795a4acf5..be16199e0 100644
--- a/sys-utils/lscpu-cputype.c
+++ b/sys-utils/lscpu-cputype.c
@@ -569,7 +569,7 @@ int lscpu_read_cpuinfo(struct lscpu_cxt *cxt)
 	/* Set the default type to CPUs which are missing (or not parsed)
 	 * in cpuinfo */
 	ct = lscpu_cputype_get_default(cxt);
-	for (i = 0; i < cxt->npossibles; i++) {
+	for (i = 0; ct && i < cxt->npossibles; i++) {
 		struct lscpu_cpu *cpu = cxt->cpus[i];
 
 		if (cpu && !cpu->type)
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 827e84a6d..e11b2f42f 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -991,7 +991,7 @@ static void print_summary(struct lscpu_cxt *cxt)
 		*(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");
@@ -1033,9 +1033,9 @@ static void print_summary(struct lscpu_cxt *cxt)
 	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++)
