From f1a8cf3349a7ceece3153eebe1cb6e4e6b254ab0 Mon Sep 17 00:00:00 2001 From: Erwan Velu Date: Sun, 22 Feb 2009 22:58:54 +0100 Subject: hdt: Fixing DMI memory corruption --- com32/modules/dmi.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/com32/modules/dmi.c b/com32/modules/dmi.c index f307cdc2..3cbc3521 100644 --- a/com32/modules/dmi.c +++ b/com32/modules/dmi.c @@ -318,14 +318,14 @@ int dmi_iterate(s_dmi *dmi) { char *p,*q; /* Cleaning structures */ - memset(&(dmi->base_board),0,sizeof dmi->base_board); - memset(&(dmi->battery),0,sizeof dmi->battery); - memset(&(dmi->bios),0,sizeof dmi->bios); - memset(&(dmi->chassis),0,sizeof dmi->chassis); + memset(&dmi->base_board,0,sizeof (s_base_board)); + memset(&dmi->battery,0,sizeof (s_battery)); + memset(&dmi->bios,0,sizeof (s_bios)); + memset(&dmi->chassis,0,sizeof (s_chassis)); for (int i=0;imemory[i]),0,sizeof dmi->memory); - memset(&(dmi->processor),0,sizeof dmi->processor); - memset(&(dmi->system),0,sizeof dmi->system); + memset(&dmi->memory[i],0,sizeof (s_memory)); + memset(&dmi->processor,0,sizeof (s_processor)); + memset(&dmi->system,0,sizeof (s_system)); /* Until we found this elements in the dmitable, we consider them as not filled */ dmi->base_board.filled=false; @@ -337,7 +337,6 @@ int dmi_iterate(s_dmi *dmi) { dmi->processor.filled=false; dmi->system.filled=false; - p=(char *)0xF0000; /* The start address to look at the dmi table */ for (q = p; q < p + 0x10000; q += 16) { memcpy(buf, q, 15); -- cgit v1.2.3