aboutsummaryrefslogtreecommitdiff
path: root/modules/devices/spd-decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/devices/spd-decode.c')
-rw-r--r--modules/devices/spd-decode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/modules/devices/spd-decode.c b/modules/devices/spd-decode.c
index 06fb4d32..27e4593f 100644
--- a/modules/devices/spd-decode.c
+++ b/modules/devices/spd-decode.c
@@ -1593,18 +1593,19 @@ static void decode_ddr4_manufacturer(unsigned char count, unsigned char code, ch
return;
}
- if (parity(count) != 1) {
+ if (parity(count) != 1 || parity(code) != 1) {
*manufacturer = _("Invalid");
return;
}
int bank = count & 0x7f;
- if (bank >= VENDORS_BANKS || (bank == VENDORS_BANKS - 1 && code > VENDORS_LAST_BANK_SIZE)) {
+ int pos = code & 0x7f;
+ if (bank >= VENDORS_BANKS || (bank == VENDORS_BANKS - 1 && pos > VENDORS_LAST_BANK_SIZE)) {
*manufacturer = _("Unknown");
return;
}
- *manufacturer = (char *)vendors[bank][code - 1];
+ *manufacturer = (char *)vendors[bank][pos - 1];
}
static void decode_ddr4_module_manufacturer(unsigned char *bytes, int spd_size,