diff options
author | jkim <jkim@FreeBSD.org> | 2013-02-15 20:36:28 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2013-02-15 20:36:28 +0000 |
commit | 3e2051769bf7ff6071ba65f29a272ac51f6f7ec3 (patch) | |
tree | 518d96aa56fe85815f40b82cf2a20eb5ba5c08ff /sys/contrib/dev/acpica/components/resources/rsxface.c | |
parent | d8ccba8d3228b8712e386a5fa02e20a2962500ed (diff) | |
parent | bd5edd68a8fda8df18c688919e100f7f1df5ad6b (diff) | |
download | FreeBSD-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.c | 9 |
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); |