diff --git a/orbis-kernel/include/orbis/module/Module.hpp b/orbis-kernel/include/orbis/module/Module.hpp index dc9876f37..1e8e5b925 100644 --- a/orbis-kernel/include/orbis/module/Module.hpp +++ b/orbis-kernel/include/orbis/module/Module.hpp @@ -78,7 +78,7 @@ struct Module final { ptr ehFrame{}; uint32_t ehFrameHdrSize{}; uint32_t ehFrameSize{}; - ModuleSegment segments[4]{}; + ModuleSegment segments[16]{}; uint32_t segmentCount{}; std::uint8_t fingerprint[20]{}; ptr base{}; diff --git a/orbis-kernel/src/sys/sys_sce.cpp b/orbis-kernel/src/sys/sys_sce.cpp index 9995b5fe5..45dcace38 100644 --- a/orbis-kernel/src/sys/sys_sce.cpp +++ b/orbis-kernel/src/sys/sys_sce.cpp @@ -1118,8 +1118,8 @@ orbis::sys_dynlib_get_info_ex(Thread *thread, SceKernelModule handle, result.ehFrameHdrSize = module->ehFrameHdrSize; result.ehFrameSize = module->ehFrameSize; std::memcpy(result.segments, module->segments, - sizeof(ModuleSegment) * module->segmentCount); - result.segmentCount = module->segmentCount; + sizeof(ModuleSegment) * 2); + result.segmentCount = 2; result.refCount = 1; ORBIS_LOG_WARNING(__FUNCTION__, result.id, result.name, result.tlsIndex, result.tlsInit, result.tlsInitSize, result.tlsSize,