diff options
Diffstat (limited to 'source/components/events/evhandler.c')
| -rw-r--r-- | source/components/events/evhandler.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/components/events/evhandler.c b/source/components/events/evhandler.c index efc466462f85..bc04cf6fc217 100644 --- a/source/components/events/evhandler.c +++ b/source/components/events/evhandler.c @@ -8,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2026, Intel Corp. * All rights reserved. * * 2. License @@ -290,6 +290,13 @@ AcpiEvHasDefaultHandler ( while (HandlerObj) { + /* Validate handler object type before accessing fields */ + + if (HandlerObj->Common.Type != ACPI_TYPE_LOCAL_ADDRESS_HANDLER) + { + break; + } + if (HandlerObj->AddressSpace.SpaceId == SpaceId) { if (HandlerObj->AddressSpace.HandlerFlags & @@ -460,6 +467,11 @@ AcpiEvFindRegionHandler ( while (HandlerObj) { + if (HandlerObj->Common.Type != ACPI_TYPE_LOCAL_ADDRESS_HANDLER) + { + break; + } + /* Same SpaceId indicates a handler is installed */ if (HandlerObj->AddressSpace.SpaceId == SpaceId) |
