<div dir="ltr"><div dir="ltr"><div style="font-family:verdana,sans-serif" class="gmail_default">Hi James,</div><div style="font-family:verdana,sans-serif" class="gmail_default"><br></div><div style="font-family:verdana,sans-serif" class="gmail_default">Thanks for the work, but the patch won't apply on the latest repo or on V21.03.00. Please  rebase the patch to the latest version.<br></div><div style="font-family:verdana,sans-serif" class="gmail_default"><br></div><div style="font-family:verdana,sans-serif" class="gmail_default">Please also be sure to use "git send-email" to send your patch.<br></div><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Date: Thu, 22 Apr 2021 19:00:27 +0000<br>Subject: [PATCH] dmi: dmicheck: return from dmi_table_smbios*() functions if signature test fails<br>If the dmi_table_smbios*() functions don't match the signature for the paticular<br>
table, then return.<br></blockquote><div><br></div><div><div style="font-family:verdana,sans-serif" class="gmail_default">Please describe the problem you are trying to fix.</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Signed-off-by: James Puthukattukaran <<a href="mailto:james.puthukattukaran@oracle.com" target="_blank">james.puthukattukaran@oracle.com</a>><br>
---<br>
 src/dmi/dmicheck/dmicheck.c | 46 +++++++++++++++++++++++++++------------------<br>
 1 file changed, 28 insertions(+), 18 deletions(-)<br>
<br>
diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c<br>
index a240365..99cb893 100644<br>
--- a/src/dmi/dmicheck/dmicheck.c<br>
+++ b/src/dmi/dmicheck/dmicheck.c<br>
@@ -370,16 +370,19 @@ static void* dmi_table_smbios(fwts_framework *fw, fwts_smb<br>
ios_entry *entry)<br>
        }<br>
<br>
        if (dmi_load_file("/sys/firmware/dmi/tables/smbios_entry_point", anchor,<br>
 4) == FWTS_OK<br>
-                       && strncmp(anchor, "_SM_", 4) == 0) {<br>
-               table = malloc(length);<br>
-               if (!table)<br>
-                       return NULL;<br>
-               if (dmi_load_file("/sys/firmware/dmi/tables/DMI", table, length)<br>
 == FWTS_OK) {<br>
-                       fwts_log_info(fw, "SMBIOS table loaded from /sys/firmwar<br>
e/dmi/tables/DMI");<br>
-                       return table;<br>
-               }<br>
-               free(table);<br>
+                       && strncmp(anchor, "_SM_", 4) != 0)<br>
+               return NULL;<br>
+<br>
+<br>
+       table = malloc(length);<br>
+       if (!table)<br>
+               return NULL;<br>
+       if (dmi_load_file("/sys/firmware/dmi/tables/DMI", table, length) == FWTS<br>
_OK) {<br>
+               fwts_log_info(fw, "SMBIOS table loaded from /sys/firmware/dmi/ta<br>
bles/DMI");<br>
+               return table;<br>
        }<br>
+       free(table);<br>
+<br>
<br>
        mem = fwts_mmap(addr, length);<br>
        if (mem != FWTS_MAP_FAILED) {<br>
@@ -418,16 +421,19 @@ static void* dmi_table_smbios30(fwts_framework *fw, fwts_s<br>
mbios30_entry *entry)<br>
        }<br>
<br>
        if (dmi_load_file("/sys/firmware/dmi/tables/smbios_entry_point", anchor,<br>
 5) == FWTS_OK<br>
-                       && strncmp(anchor, "_SM3_", 5) == 0) {<br>
-               table = malloc(length);<br>
-               if (!table)<br>
-                       return NULL;<br>
-               if (dmi_load_file_variable_size("/sys/firmware/dmi/tables/DMI",<br>
table, &length) == FWTS_OK) {<br>
-                       fwts_log_info(fw, "SMBIOS30 table loaded from /sys/firmw<br>
are/dmi/tables/DMI");<br>
-                       return table;<br>
-               }<br>
-               free(table);<br>
+                       && strncmp(anchor, "_SM3_", 5) != 0)<br>
+               return NULL;<br>
+<br>
+<br>
+       table = malloc(length);<br>
+       if (!table)<br>
+               return NULL;<br>
+       if (dmi_load_file_variable_size("/sys/firmware/dmi/tables/DMI", table, &<br>
length) == FWTS_OK) {<br>
+               fwts_log_info(fw, "SMBIOS30 table loaded from /sys/firmware/dmi/<br>
tables/DMI");<br>
+               return table;<br>
        }<br>
+       free(table);<br>
+<br>
<br>
        mem = fwts_mmap(addr, length);<br>
        if (mem != FWTS_MAP_FAILED) {<br>
@@ -648,6 +654,8 @@ static int smbios_entry_check(fwts_framework *fw)<br>
                 */<br>
                if (dmi_sane(fw, &entry) == FWTS_OK)<br>
                        fwts_passed(fw, "SMBIOS Table Entry Structure Table Addr<br>
ess and Length looks valid.");<br>
+               else<br>
+                       return FWTS_ERROR;<br>
        }<br>
<br>
        return FWTS_OK;<br>
@@ -769,6 +777,8 @@ static int smbios30_entry_check(fwts_framework *fw)<br>
                 */<br>
                if (dmi_smbios30_sane(fw, &entry) == FWTS_OK)<br>
                        fwts_passed(fw, "SMBIOS 3.0 Table Entry Structure Table<br>
Address and Length looks valid.");<br>
+               else<br>
+                       return FWTS_ERROR;<br>
        }<br>
<br>
        return FWTS_OK;<br>
--<br>
1.8.3.1<br>
<br><br></blockquote></div>-- <br><div dir="ltr"><div dir="ltr">Cheers,<br>Alex Hung<br></div></div></div></div>