diff options
author | jkim <jkim@FreeBSD.org> | 2013-02-15 19:12:35 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2013-02-15 19:12:35 +0000 |
commit | bd5edd68a8fda8df18c688919e100f7f1df5ad6b (patch) | |
tree | 60bd49061ad572a9f0cd0955d91e302983ee6939 /source/components/resources/rsxface.c | |
parent | 713ce6817a3fbfd4bf492408e97d9b7468853c17 (diff) | |
download | FreeBSD-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.c | 9 |
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); |