diff --git a/core/libs/prx/libc/src/Process.cpp b/core/libs/prx/libc/src/Process.cpp index 2c272da0c..6320d9c35 100644 --- a/core/libs/prx/libc/src/Process.cpp +++ b/core/libs/prx/libc/src/Process.cpp @@ -34,6 +34,8 @@ int* __error_nid_postfix() { } int atexit_nid_postfix(atexit_func_t func) { + if (func == nullptr) + return 0; return std::atexit(func); } diff --git a/core/relinker/src/analysis/UnusedNidFilter.cpp b/core/relinker/src/analysis/UnusedNidFilter.cpp index c2d1fb922..0c0df3183 100644 --- a/core/relinker/src/analysis/UnusedNidFilter.cpp +++ b/core/relinker/src/analysis/UnusedNidFilter.cpp @@ -101,10 +101,7 @@ public: std::vector result; for (const auto& ref : nidRefs) { if (ref.RelocationTypeValue == 7) { - auto stubIt = ripTargetToInstrVAddr.find(ref.RelocationAddress); - if (stubIt == ripTargetToInstrVAddr.end()) continue; - if (callTargetToInstrVAddr.count(stubIt->second) > 0) - result.push_back(ref); + result.push_back(ref); } else { if (ripTargetToInstrVAddr.count(ref.RelocationAddress) > 0) result.push_back(ref);