f678f58aac
- news-fix-typo.patch: We ship the NEWS file so avoid including a typo in it. - dmioem-fix-segmentation-fault-in-dmi_hp_240_attr.patch: Passing NULL to a %s printf conversion specifier is illegal, and can result in a segmentation fault. Current version of glibc doesn't mind, but alternative, past or future libc implementations could crash, so let's fix it. OBS-URL: https://build.opensuse.org/package/show/Base:System/dmidecode?expand=0&rev=64
43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
From: Jean Delvare <jdelvare@suse.de>
|
|
Date: Fri, 9 Sep 2022 11:46:53 +0200
|
|
Subject: dmioem: Fix segmentation fault in dmi_hp_240_attr()
|
|
Patch-mainline: yes
|
|
Git-commit: c3357b532941a8df387618e692e522cc7a43b3e8
|
|
|
|
pr_attr() does not accept a NULL format string. glibc can deal with
|
|
it, but FreeBSD's libc chokes on it.
|
|
|
|
Display the attributes as a list instead. Pack the attribute name and
|
|
status into a single formatted string that can be passed to
|
|
pr_list_item(). That's arguably a hack, but it's cheap, non-intrusive,
|
|
and works nicely in the end.
|
|
|
|
Bug reported by Scott Benesh (Microchip).
|
|
|
|
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
|
Fixes: a4b31b2bc537 ("dmioem: Present HPE type 240 attributes in a nicer way")
|
|
Cc: Jerry Hoemann <jerry.hoemann@hpe.com>
|
|
---
|
|
dmioem.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
--- dmidecode-3.4.orig/dmioem.c 2022-06-27 17:06:32.000000000 +0200
|
|
+++ dmidecode-3.4/dmioem.c 2022-09-09 11:57:12.283832820 +0200
|
|
@@ -198,13 +198,14 @@ static void dmi_hp_240_attr(u64 defined,
|
|
};
|
|
unsigned int i;
|
|
|
|
- pr_attr("Attributes Defined/Set", NULL);
|
|
+ pr_list_start("Attributes Defined/Set", NULL);
|
|
for (i = 0; i < ARRAY_SIZE(attributes); i++)
|
|
{
|
|
if (!(defined.l & (1UL << i)))
|
|
continue;
|
|
- pr_subattr(attributes[i], "%s", set.l & (1UL << i) ? "Yes" : "No");
|
|
+ pr_list_item("%s: %s", attributes[i], set.l & (1UL << i) ? "Yes" : "No");
|
|
}
|
|
+ pr_list_end();
|
|
}
|
|
|
|
static void dmi_hp_203_assoc_hndl(const char *fname, u16 num)
|