Commit Message
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
---
dmidecode/dmidecode.nm | 2 +-
...midecode-3.3-fix_crash_with_u_option.patch | 34 +++++++++++++++++++
..._the_condition_error_in_ascii_filter.patch | 30 ++++++++++++++++
3 files changed, 65 insertions(+), 1 deletion(-)
create mode 100644 dmidecode/patches/dmidecode-3.3-fix_crash_with_u_option.patch
create mode 100644 dmidecode/patches/dmidecode-3.3-fix_the_condition_error_in_ascii_filter.patch
@@ -4,7 +4,7 @@
###############################################################################
name = dmidecode
-version = 3.2
+version = 3.3
release = 1
groups = Applications/System
new file mode 100644
@@ -0,0 +1,34 @@
+From 11e134e54d15e67a64c39a623f492a28df922517 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Tue, 19 Jan 2021 16:26:01 +0100
+Subject: dmidecode: Fix crash with -u option
+
+A segmentation fault was reported with option -u. Turns out to be a
+stupid thinko where the buffer offset was reset at the wrong loop
+depth.
+
+Reported-by: Jerry Hoemann <jerry.hoemann@hpe.com>
+Fixes: da06888d08b9 ("dmidecode: Use the print helpers in dump mode too")
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+---
+ dmidecode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dmidecode.c b/dmidecode.c
+index 572cb1a..69ea0e8 100644
+--- a/dmidecode.c
++++ b/dmidecode.c
+@@ -248,9 +248,9 @@ static void dmi_dump(const struct dmi_header *h)
+ {
+ int j, l = strlen(s) + 1;
+
+- off = 0;
+ for (row = 0; row < ((l - 1) >> 4) + 1; row++)
+ {
++ off = 0;
+ for (j = 0; j < 16 && j < l - (row << 4); j++)
+ off += sprintf(raw_data + off,
+ j ? " %02X" : "%02X",
+--
+cgit v1.2.1
+
new file mode 100644
@@ -0,0 +1,30 @@
+From 1117390ccd9cea139638db6f460bb6de70e28f94 Mon Sep 17 00:00:00 2001
+From: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
+Date: Tue, 5 Jan 2021 10:36:29 +0100
+Subject: dmidecode: Fix the condition error in ascii_filter
+
+The normal printable ASCII range is 32 to 127 (not included),
+so fix the error in this if condition.
+
+Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+---
+ dmidecode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dmidecode.c b/dmidecode.c
+index 27d5494..864a193 100644
+--- a/dmidecode.c
++++ b/dmidecode.c
+@@ -116,7 +116,7 @@ static void ascii_filter(char *bp, size_t len)
+ size_t i;
+
+ for (i = 0; i < len; i++)
+- if (bp[i] < 32 || bp[i] == 127)
++ if (bp[i] < 32 || bp[i] >= 127)
+ bp[i] = '.';
+ }
+
+--
+cgit v1.2.1
+