summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-03-16 04:34:26 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-03-16 04:34:26 +0100
commit7714e311af10b3a7ec4f270e26d84fc5aed521ba (patch)
treeb28c2e3731a9759376b103ce7244dafe4bbe415e /dev/Kernel/src
parenta551894aa9347aac5564e93a884ae958990bed30 (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/Kernel/src')
-rw-r--r--dev/Kernel/src/IPEFDylibObject.cc6
-rw-r--r--dev/Kernel/src/MemoryMgr.cc2
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;