diff options
Diffstat (limited to 'dev/Kernel/src/IPEFDylibObject.cc')
| -rw-r--r-- | dev/Kernel/src/IPEFDylibObject.cc | 6 |
1 files changed, 6 insertions, 0 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; |
