summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel
diff options
context:
space:
mode:
author0xf00sec <159052166+0xf00sec@users.noreply.github.com>2025-08-10 14:09:10 +0000
committerGitHub <noreply@github.com>2025-08-10 14:09:10 +0000
commit06bc8838d5cdd89104412e68d36d6f3f081cb150 (patch)
tree68d71892e976b53d2ac334521e3419240d9d4b65 /dev/kernel
parentc896d07fec6d949328a4ef09a80c47fe6f682e67 (diff)
parent4fad178e1d45dc3beab4ddc8d5658094aef661cf (diff)
Merge branch 'dev' into 0xf00sec-patch-3
Diffstat (limited to 'dev/kernel')
-rw-r--r--dev/kernel/NeKit/Crc32.h2
-rw-r--r--dev/kernel/src/Crc32.cc6
2 files changed, 5 insertions, 3 deletions
diff --git a/dev/kernel/NeKit/Crc32.h b/dev/kernel/NeKit/Crc32.h
index 8988f828..0fc35134 100644
--- a/dev/kernel/NeKit/Crc32.h
+++ b/dev/kernel/NeKit/Crc32.h
@@ -16,7 +16,7 @@
#define kCrcCnt (256)
namespace Kernel {
-UInt32 ke_calculate_crc32(const Char* crc, Int32 len) noexcept;
+UInt32 ke_calculate_crc32(const VoidPtr crc, Int32 len) noexcept;
} // namespace Kernel
#endif // !CRC32_H
diff --git a/dev/kernel/src/Crc32.cc b/dev/kernel/src/Crc32.cc
index fddcb095..46a1d940 100644
--- a/dev/kernel/src/Crc32.cc
+++ b/dev/kernel/src/Crc32.cc
@@ -49,11 +49,13 @@ UInt32 kChecksumPolys[kCrcCnt] = {
/// @param in the data to compute.
/// @param len the length of the data.
/// @return CRC32 of **in**.
-UInt32 ke_calculate_crc32(const Char* in, Int32 len) noexcept {
- if (!in || *in == 0) return ~0;
+UInt32 ke_calculate_crc32(const VoidPtr inp, Int32 len) noexcept {
+ if (!inp) return ~0;
UInt32 crc = 0xffffffff;
+ Char* in = static_cast<Char*>(inp);
+
while ((len--) > 0) crc = (crc >> 8) ^ kChecksumPolys[(crc ^ *(in++)) & 0xFF];
return ~crc;