dmidecode: update to 3.3

Notable changes as per https://git.savannah.gnu.org/cgit/dmidecode.git/plain/NEWS:

Version 3.3 (Wed Oct 14 2020)
  - [BUILD] Allow overriding build settings from the environment.
  - [COMPATIBILITY] Document how the UUID fields are interpreted.
  - [PORTABILITY] Don't use memcpy on /dev/mem on arm64.
  - [PORTABILITY] Only scan /dev/mem for entry point on x86.
  - Support for SMBIOS 3.3.0. This includes new processor names, new port
    connector types, and new memory device form factors, types and
    technologies.
  - Add bios-revision, firmware-revision and system-sku-number to -s option.
  - Use the most appropriate unit for cache size.
  - Decode system slot base bus width and peers.
  - Important bug fixes:
    Fix Redfish Hostname print length
    Fix formatting of TPM table output
    Fix System Slot Information for PCIe SSD
    Don't choke on invalid processor voltage
  - Use the most appropriate unit for cache size.

Version 3.2 (Wed Sep 14 2018)
  - [COMPATIBILITY] The UUID is now displayed using lowercase letters, per
    RFC 4122 (#53569). You must ensure that any code parsing it is
    case-insensitive.
  - Support for SMBIOS 3.2.0. This includes new processor names, new socket
    and port connector types, new system slot state and property, and support
    for non-volatile memory (NVDIMM).
  - Support for Redfish management controllers.
  - A new command line option to query a specific structure by its handle.
  - A new command line option to query the system family string.
  - Support for 3 ThinkPad-specific structures (patch #9642).
  - Support for HPE's new company name.
  - Support UEFI on FreeBSD.
  - Important bug fixes:
    Fix firmware version of TPM device
    Fix the HPE UEFI feature flag check
  - (biosdecode) A new command line option to fully decode PIR information
    (support request #109339).

This patch also features two new patches recommended by upstream, whose
online version can be retrieved at
https://git.savannah.gnu.org/cgit/dmidecode.git/commit/?id=1117390ccd9cea139638db6f460bb6de70e28f94
https://git.savannah.gnu.org/cgit/dmidecode.git/commit/?id=11e134e54d15e67a64c39a623f492a28df922517.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Peter Müller
2021-06-02 20:00:04 +02:00
committed by Michael Tremer
parent 31faaf2b14
commit 740549d85a
6 changed files with 73 additions and 36 deletions

View File

@@ -1,30 +0,0 @@
From 174387405e98cd94c627832ae23abcb9be7e5623 Mon Sep 17 00:00:00 2001
From: Jean Delvare <jdelvare@suse.de>
Date: Wed, 31 Jan 2018 18:52:47 +0100
Subject: dmidecode: Fix firmware version of TPM device
Both the operator (detected by clang, reported by Xorg) and the mask
for the minor firmware version field of TPM devices were wrong.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Fixes: 48a8132058a0 ("dmidecode: Add support for structure type 43 (TPM Device)")
---
dmidecode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dmidecode.c b/dmidecode.c
index 87faaa9..a593170 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -4511,7 +4511,7 @@ static void dmi_decode(const struct dmi_header *h, u16 ver)
case 0x02:
printf("\tFirmware Revision: %u.%u\n",
DWORD(data + 0x0A) >> 16,
- DWORD(data + 0x0A) && 0xFF);
+ DWORD(data + 0x0A) & 0xFFFF);
/*
* We skip the next 4 bytes, as their
* format is not standardized and their
--
cgit v1.0-41-gc330

View File

@@ -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

View File

@@ -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