diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-16 04:34:26 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-16 04:34:26 +0100 |
| commit | 7714e311af10b3a7ec4f270e26d84fc5aed521ba (patch) | |
| tree | b28c2e3731a9759376b103ce7244dafe4bbe415e /dev | |
| parent | a551894aa9347aac5564e93a884ae958990bed30 (diff) | |
FIX: IPEFDylibObject.cc: delete dll_Obj->Get() too, when fBlob is NULL.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/Kernel/src/IPEFDylibObject.cc | 6 | ||||
| -rw-r--r-- | dev/Kernel/src/MemoryMgr.cc | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/dev/Kernel/src/IPEFDylibObject.cc b/dev/Kernel/src/IPEFDylibObject.cc index 4824cca1..e994ad29 100644 --- a/dev/Kernel/src/IPEFDylibObject.cc +++ b/dev/Kernel/src/IPEFDylibObject.cc @@ -56,6 +56,8 @@ EXTERN_C IDylibRef rtl_init_dylib(UserProcess& process) if (!dll_obj->Get()) { tls_delete_class(dll_obj); + dll_obj = nullptr; + process.Crash(); return nullptr; @@ -66,7 +68,11 @@ EXTERN_C IDylibRef rtl_init_dylib(UserProcess& process) if (!dll_obj->Get()->ImageObject) { + delete dll_obj->Get(); + tls_delete_class(dll_obj); + dll_obj = nullptr; + process.Crash(); return nullptr; diff --git a/dev/Kernel/src/MemoryMgr.cc b/dev/Kernel/src/MemoryMgr.cc index cea772f0..4e13ea15 100644 --- a/dev/Kernel/src/MemoryMgr.cc +++ b/dev/Kernel/src/MemoryMgr.cc @@ -81,7 +81,7 @@ namespace NeOS auto base_heap = ((IntPtr)heap_ptr) - sizeof(Detail::HEAP_INFORMATION_BLOCK); /// Add that check in case we're having an integer underflow. /// - + if (base_heap < 0) { return false; |
