From b24a39dac7e9a9ba89d333f86c6824e3004d4fcd Mon Sep 17 00:00:00 2001 From: Amlal Date: Wed, 20 Aug 2025 18:12:19 +0200 Subject: feat: acpi: harden ACPI `operator[]` and `Checksum` methods. Signed-off-by: Amlal --- dev/kernel/src/ACPIFactoryInterface.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'dev/kernel/src/ACPIFactoryInterface.cc') diff --git a/dev/kernel/src/ACPIFactoryInterface.cc b/dev/kernel/src/ACPIFactoryInterface.cc index 01f30500..51a0e308 100644 --- a/dev/kernel/src/ACPIFactoryInterface.cc +++ b/dev/kernel/src/ACPIFactoryInterface.cc @@ -70,11 +70,11 @@ ErrorOr ACPIFactoryInterface::Find(const Char* signature) { @param len the length of it. */ bool ACPIFactoryInterface::Checksum(const Char* checksum, SSizeT len) { - if (len == 0) return 1; + if (len == 0 || !checksum) return false; - char chr = 0; + Char chr = 0; - for (int index = 0; index < len; ++index) { + for (SSizeT index = 0L; index < len; ++index) { chr += checksum[index]; } @@ -82,6 +82,7 @@ bool ACPIFactoryInterface::Checksum(const Char* checksum, SSizeT len) { } ErrorOr ACPIFactoryInterface::operator[](const Char* signature) { + if (!singature) return {-kErrorInvalidData}; return this->Find(signature); } } // namespace Kernel -- cgit v1.2.3