acpidump: warn and exit loop on invalid subtable length
Submitted by: Guangyuan Yang <yzgyyang@outlook.com> Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
d9ad2b357b
commit
f5d0a8f7c7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=320736
@ -270,6 +270,10 @@ acpi_walk_subtables(ACPI_TABLE_HEADER *table, void *first,
|
|||||||
end = (char *)table + table->Length;
|
end = (char *)table + table->Length;
|
||||||
while ((char *)subtable < end) {
|
while ((char *)subtable < end) {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
if (subtable->Length < sizeof(ACPI_SUBTABLE_HEADER)) {
|
||||||
|
warnx("invalid subtable length %u", subtable->Length);
|
||||||
|
return;
|
||||||
|
}
|
||||||
action(subtable);
|
action(subtable);
|
||||||
subtable = (ACPI_SUBTABLE_HEADER *)((char *)subtable +
|
subtable = (ACPI_SUBTABLE_HEADER *)((char *)subtable +
|
||||||
subtable->Length);
|
subtable->Length);
|
||||||
|
Loading…
Reference in New Issue
Block a user