We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent cf770af commit 0ef11f6Copy full SHA for 0ef11f6
drivers/firmware/dmi_scan.c
@@ -101,6 +101,17 @@ static void dmi_decode_table(u8 *buf,
101
(data - buf + sizeof(struct dmi_header)) <= dmi_len) {
102
const struct dmi_header *dm = (const struct dmi_header *)data;
103
104
+ /*
105
+ * If a short entry is found (less than 4 bytes), not only it
106
+ * is invalid, but we cannot reliably locate the next entry.
107
+ */
108
+ if (dm->length < sizeof(struct dmi_header)) {
109
+ pr_warn(FW_BUG
110
+ "Corrupted DMI table, offset %zd (only %d entries processed)\n",
111
+ data - buf, i);
112
+ break;
113
+ }
114
+
115
/*
116
* We want to know the total length (formatted area and
117
* strings) before decoding to make sure we won't run off the
0 commit comments