From 954223cbf5e6b1d70ade6931e825b3a7192b7549 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 6 Nov 2022 03:16:03 +0200 Subject: [PATCH] Fixed memory leak --- Core/Driver.cpp | 10 ++++++---- Library/dumper.cpp | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Core/Driver.cpp b/Core/Driver.cpp index c21fbd2..254b9ba 100644 --- a/Core/Driver.cpp +++ b/Core/Driver.cpp @@ -204,6 +204,7 @@ namespace Driver debug("MD5: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15]); + kfree(result); #endif if (CallDriverEntryPoint(fex) != DriverCode::OK) { @@ -323,10 +324,11 @@ namespace Driver memcpy(fex, (void *)DriverAddress, Size); FexExtended *fexExtended = (FexExtended *)((uint64_t)fex + EXTENDED_SECTION_ADDRESS); #ifdef DEBUG - uint8_t *result = md5File((uint8_t *)fex, Size); - debug("MD5: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], - result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15]); + uint8_t *result = md5File((uint8_t *)fex, Size); + debug("MD5: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", + result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], + result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15]); + kfree(result); #endif if (CallDriverEntryPoint(fex) != DriverCode::OK) { diff --git a/Library/dumper.cpp b/Library/dumper.cpp index be2aaaf..e7615d4 100644 --- a/Library/dumper.cpp +++ b/Library/dumper.cpp @@ -1,5 +1,6 @@ #include "dumper.hpp" +#include #include #include #include @@ -68,5 +69,6 @@ void DumpData(const char *Description, void *Address, unsigned long Length) WriteRaw("MD5: "); for (int i = 0; i < 16; i++) WriteRaw("%02x", result[i]); + kfree(result); WriteRaw("\n-------------------------------------------------------------------------\n"); }