diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-11-23 13:50:09 +0100 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-11-23 13:50:09 +0100 |
| commit | 476e896ba9169b4b71c1e80d3e44dd006934b3e5 (patch) | |
| tree | 0070fb7ba0ed6c20826df45fbffae31101f11ffa /dev | |
| parent | d2d6b4cb728e3e80c10d6e3bbd72e6f7b3dfea9b (diff) | |
Kernel: Fix memory leaks and document the DLL dyld.
Kernel: Document Drive manager of minoskrnl.
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/ZKAKit/KernelKit/IDLLObject.h | 7 | ||||
| -rw-r--r-- | dev/ZKAKit/KernelKit/IPEFDLLObject.h | 4 | ||||
| -rw-r--r-- | dev/ZKAKit/src/DriveMgr.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/IPEFDLLObject.cc | 11 |
4 files changed, 12 insertions, 12 deletions
diff --git a/dev/ZKAKit/KernelKit/IDLLObject.h b/dev/ZKAKit/KernelKit/IDLLObject.h index 81b43ae8..bf336267 100644 --- a/dev/ZKAKit/KernelKit/IDLLObject.h +++ b/dev/ZKAKit/KernelKit/IDLLObject.h @@ -14,6 +14,7 @@ namespace Kernel { + /// @brief DLL class object. A handle to a shared library. class IDLLObject { public: @@ -22,12 +23,12 @@ namespace Kernel struct DLL_TRAITS final { - VoidPtr fImageObject{nullptr}; - VoidPtr fImageEntrypointOffset{nullptr}; + VoidPtr ImageObject{nullptr}; + VoidPtr ImageEntrypointOffset{nullptr}; Bool IsValid() { - return fImageObject && fImageEntrypointOffset; + return ImageObject && ImageEntrypointOffset; } }; diff --git a/dev/ZKAKit/KernelKit/IPEFDLLObject.h b/dev/ZKAKit/KernelKit/IPEFDLLObject.h index 64e5c2fd..450b3a13 100644 --- a/dev/ZKAKit/KernelKit/IPEFDLLObject.h +++ b/dev/ZKAKit/KernelKit/IPEFDLLObject.h @@ -48,7 +48,7 @@ namespace Kernel public: void Mount(DLL_TRAITS* to_mount) { - if (!to_mount || !to_mount->fImageObject) + if (!to_mount || !to_mount->ImageObject) return; fMounted = to_mount; @@ -61,7 +61,7 @@ namespace Kernel if (!fLoader) { - fLoader = new PEFLoader(fMounted->fImageObject); + fLoader = new PEFLoader(fMounted->ImageObject); } } diff --git a/dev/ZKAKit/src/DriveMgr.cc b/dev/ZKAKit/src/DriveMgr.cc index 4946e714..d2c08c19 100644 --- a/dev/ZKAKit/src/DriveMgr.cc +++ b/dev/ZKAKit/src/DriveMgr.cc @@ -14,7 +14,7 @@ /***********************************************************************************/ /// @file DriveMgr.cc -/// @brief Drive Manager API. +/// @brief Drive Manager of minoskrnl. /***********************************************************************************/ namespace Kernel diff --git a/dev/ZKAKit/src/IPEFDLLObject.cc b/dev/ZKAKit/src/IPEFDLLObject.cc index b72421d8..67150854 100644 --- a/dev/ZKAKit/src/IPEFDLLObject.cc +++ b/dev/ZKAKit/src/IPEFDLLObject.cc @@ -46,7 +46,6 @@ EXTERN_C IDLL rtl_init_dll(UserProcess* header) if (!dll_obj) { header->Crash(); - return nullptr; } @@ -54,22 +53,22 @@ EXTERN_C IDLL rtl_init_dll(UserProcess* header) if (!dll_obj->Get()) { + tls_delete_class(dll_obj); header->Crash(); - return nullptr; } - dll_obj->Get()->fImageObject = + dll_obj->Get()->ImageObject = header->Image.fBlob; - if (!dll_obj->Get()->fImageObject) + if (!dll_obj->Get()->ImageObject) { + tls_delete_class(dll_obj); header->Crash(); - return nullptr; } - dll_obj->Get()->fImageEntrypointOffset = + dll_obj->Get()->ImageEntrypointOffset = dll_obj->Load<VoidPtr>(kPefStart, rt_string_len(kPefStart, 0), kPefCode); return dll_obj; |
