summaryrefslogtreecommitdiffstats
path: root/dmidecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'dmidecode.c')
-rw-r--r--dmidecode.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/dmidecode.c b/dmidecode.c
index 9623595..e484bf8 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -4334,10 +4334,12 @@ static void overwrite_dmi_address(u8 *buf) {
int dumpling(u8 *buf, const char *dumpfile, u8 mode) {
u32 base;
u16 len;
- if(mode != LEGACY) {
+ if(mode == NON_LEGACY) {
+ if(!checksum(buf, buf[0x05]) || !memcmp(buf+0x10, "_DMI_", 5)==0 || !checksum(buf+0x10, 0x0F)) return 0;
base = DWORD(buf+0x18);
len = WORD(buf+0x16);
} else {
+ if(!checksum(buf, 0x0F)) return 0;
base = DWORD(buf+0x08);
len = WORD(buf+0x06);
}
@@ -4524,7 +4526,6 @@ static void dmi_table(u32 base, u16 len, u16 num, u16 ver, const char *devmem, P
}
-
int smbios_decode(u8 *buf, const char *devmem, PyObject* pydata) {
if(pydata == NULL) return 1;
if(!checksum(buf, buf[0x05]) || !memcmp(buf+0x10, "_DMI_", 5)==0 || !checksum(buf+0x10, 0x0F)) return 0;