All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ACPI: Prevent acpi_table_entries from falling into a infinite loop
@ 2014-06-03 14:51 Malcolm Crossley
  2014-06-03 14:54 ` Andrew Cooper
  0 siblings, 1 reply; 3+ messages in thread
From: Malcolm Crossley @ 2014-06-03 14:51 UTC (permalink / raw)
  To: xen-devel; +Cc: JBeulich

If a buggy BIOS programs an ACPI table with entry length 0 then
acpi_table_entries gets stuck in an infinite loop.

To aid debugging, report the error and exit the loop.

Signed-off-by: Malcolm Crossley <malcolm.crossley@citrix.com>

diff -r 4708591d8aa8 -r af3b2493951c xen/drivers/acpi/tables.c
--- a/xen/drivers/acpi/tables.c
+++ b/xen/drivers/acpi/tables.c
@@ -238,6 +238,12 @@ acpi_table_parse_entries(char *id,
 			if (handler(entry, table_end))
 				return -EINVAL;
 
+		if (entry->length == 0) {
+			printk(KERN_ERR PREFIX "[%4.4s:0x%02x] Invalid zero length\n",
+			       id, entry_id);
+			return -EINVAL;
+		}
+
 		entry = (struct acpi_subtable_header *)
 		    ((unsigned long)entry + entry->length);
 	}

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-06-03 15:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-03 14:51 [PATCH] ACPI: Prevent acpi_table_entries from falling into a infinite loop Malcolm Crossley
2014-06-03 14:54 ` Andrew Cooper
2014-06-03 15:51   ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.