Skip to content

Commit 20426b6

Browse files
committed
Avoid some NULL pointer strings during SMBIOS decoding. issue #352
1 parent a485cec commit 20426b6

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

corefreqk.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20944,6 +20944,8 @@ char *SMBIOS_String(const struct dmi_header *dh, u8 id)
2094420944
return pStr;
2094520945
}
2094620946

20947+
#define safe_strim(pStr) (strim(pStr == NULL ? "" : pStr))
20948+
2094720949
void SMBIOS_Entries(const struct dmi_header *dh, void *priv)
2094820950
{
2094920951
size_t *count = (size_t*) priv;
@@ -20967,8 +20969,8 @@ void SMBIOS_Entries(const struct dmi_header *dh, void *priv)
2096720969
if ((*count) < MC_MAX_DIMM)
2096820970
{
2096920971
const char *locator[2] = {
20970-
strim(SMBIOS_String(dh, entry->device_locator_id)),
20971-
strim(SMBIOS_String(dh, entry->bank_locator_id))
20972+
safe_strim(SMBIOS_String(dh, entry->device_locator_id)),
20973+
safe_strim(SMBIOS_String(dh, entry->bank_locator_id))
2097220974
};
2097320975
size_t calc;
2097420976
const size_t len[2] = {
@@ -20986,11 +20988,11 @@ void SMBIOS_Entries(const struct dmi_header *dh, void *priv)
2098620988
ratio[1], locator[1]);
2098720989

2098820990
StrCopy(PUBLIC(RO(Proc))->SMB.Memory.Manufacturer[(*count)],
20989-
strim(SMBIOS_String(dh, entry->manufacturer_id)),
20991+
safe_strim(SMBIOS_String(dh, entry->manufacturer_id)),
2099020992
MAX_UTS_LEN);
2099120993

2099220994
StrCopy(PUBLIC(RO(Proc))->SMB.Memory.PartNumber[(*count)],
20993-
strim(SMBIOS_String(dh, entry->part_number_id)),
20995+
safe_strim(SMBIOS_String(dh, entry->part_number_id)),
2099420996
MAX_UTS_LEN);
2099520997
}
2099620998
}
@@ -20999,6 +21001,7 @@ void SMBIOS_Entries(const struct dmi_header *dh, void *priv)
2099921001
break;
2100021002
}
2100121003
}
21004+
#undef safe_strim
2100221005
#endif /* CONFIG_DMI */
2100321006

2100421007
void SMBIOS_Decoder(void)

coretypes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#define COREFREQ_MAJOR 1
88
#define COREFREQ_MINOR 91
9-
#define COREFREQ_REV 3
9+
#define COREFREQ_REV 4
1010

1111
#if !defined(CORE_COUNT)
1212
#define CORE_COUNT 256

0 commit comments

Comments
 (0)