Add a safety check for freeing kernel modules.

This commit is contained in:
Unknown W. Brackets
2014-08-17 14:25:57 -07:00
parent 892980ada1
commit bf03e32027
+2 -1
View File
@@ -217,7 +217,8 @@ public:
Module() : textStart(0), textEnd(0), memoryBlockAddr(0), isFake(false) {}
~Module() {
if (memoryBlockAddr) {
if (memoryBlockAddr < PSP_GetUserMemoryBase()) {
// If it's either below user memory, or using a high kernel bit, it's in kernel.
if (memoryBlockAddr < PSP_GetUserMemoryBase() || memoryBlockAddr > PSP_GetUserMemoryEnd()) {
kernelMemory.Free(memoryBlockAddr);
} else {
userMemory.Free(memoryBlockAddr);