summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/components/resources/rsxface.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-02-15 20:36:28 +0000
committerjkim <jkim@FreeBSD.org>2013-02-15 20:36:28 +0000
commit3e2051769bf7ff6071ba65f29a272ac51f6f7ec3 (patch)
tree518d96aa56fe85815f40b82cf2a20eb5ba5c08ff /sys/contrib/dev/acpica/components/resources/rsxface.c
parentd8ccba8d3228b8712e386a5fa02e20a2962500ed (diff)
parentbd5edd68a8fda8df18c688919e100f7f1df5ad6b (diff)
downloadFreeBSD-src-3e2051769bf7ff6071ba65f29a272ac51f6f7ec3.zip
FreeBSD-src-3e2051769bf7ff6071ba65f29a272ac51f6f7ec3.tar.gz
Merge ACPICA 20130214.
Diffstat (limited to 'sys/contrib/dev/acpica/components/resources/rsxface.c')
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsxface.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/contrib/dev/acpica/components/resources/rsxface.c b/sys/contrib/dev/acpica/components/resources/rsxface.c
index f70d8f6..557fa2f 100644
--- a/sys/contrib/dev/acpica/components/resources/rsxface.c
+++ b/sys/contrib/dev/acpica/components/resources/rsxface.c
@@ -630,7 +630,7 @@ AcpiWalkResourceBuffer (
while (Resource < ResourceEnd)
{
- /* Sanity check the resource */
+ /* Sanity check the resource type */
if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
{
@@ -638,6 +638,13 @@ AcpiWalkResourceBuffer (
break;
}
+ /* Sanity check the length. It must not be zero, or we loop forever */
+
+ if (!Resource->Length)
+ {
+ return_ACPI_STATUS (AE_AML_BAD_RESOURCE_LENGTH);
+ }
+
/* Invoke the user function, abort on any error returned */
Status = UserFunction (Resource, Context);
OpenPOWER on IntegriCloud