diff options
| author | Amlal <amlal@nekernel.org> | 2025-08-20 18:12:19 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-08-20 18:12:19 +0200 |
| commit | b24a39dac7e9a9ba89d333f86c6824e3004d4fcd (patch) | |
| tree | f17263293a5d3638e35c60e10a1f2f3e30a25003 /dev | |
| parent | db1d0e53cc21678ace07b72652ed7b3b1054da30 (diff) | |
feat: acpi: harden ACPI `operator[]` and `Checksum` methods.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/kernel/src/ACPIFactoryInterface.cc | 7 |
1 files changed, 4 insertions, 3 deletions
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<voidPtr> 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<voidPtr> ACPIFactoryInterface::operator[](const Char* signature) { + if (!singature) return <voidPtr>{-kErrorInvalidData}; return this->Find(signature); } } // namespace Kernel |
