summaryrefslogtreecommitdiff
path: root/view/sharedcache/core/ObjC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'view/sharedcache/core/ObjC.cpp')
-rw-r--r--view/sharedcache/core/ObjC.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/view/sharedcache/core/ObjC.cpp b/view/sharedcache/core/ObjC.cpp
index 265506c2..271e5c94 100644
--- a/view/sharedcache/core/ObjC.cpp
+++ b/view/sharedcache/core/ObjC.cpp
@@ -889,6 +889,11 @@ void DSCObjCProcessor::ReadIvarList(VMReader* reader, ClassBase& cls, std::strin
head.count = reader->Read32();
auto addressSize = m_data->GetAddressSize();
DefineObjCSymbol(DataSymbol, m_typeNames.ivarList, "ivar_list_" + name, start, true);
+ if (head.count > 0x1000)
+ {
+ m_logger->LogError("Ivar list at 0x%llx has an invalid count of 0x%llx", start, head.count);
+ return;
+ }
for (unsigned i = 0; i < head.count; i++)
{
try