summaryrefslogtreecommitdiffstats
path: root/source/components/resources/rsxface.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-02-15 19:12:35 +0000
committerjkim <jkim@FreeBSD.org>2013-02-15 19:12:35 +0000
commitbd5edd68a8fda8df18c688919e100f7f1df5ad6b (patch)
tree60bd49061ad572a9f0cd0955d91e302983ee6939 /source/components/resources/rsxface.c
parent713ce6817a3fbfd4bf492408e97d9b7468853c17 (diff)
downloadFreeBSD-src-bd5edd68a8fda8df18c688919e100f7f1df5ad6b.zip
FreeBSD-src-bd5edd68a8fda8df18c688919e100f7f1df5ad6b.tar.gz
Import ACPICA 20130215.
Diffstat (limited to 'source/components/resources/rsxface.c')
-rw-r--r--source/components/resources/rsxface.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c
index b107ddd..36edc81 100644
--- a/source/components/resources/rsxface.c
+++ b/source/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