================
@@ -1819,23 +1821,35 @@ llvm::Error
AppleObjCRuntimeV2::SharedCacheImageHeaders::UpdateIfNeeded() {
constexpr lldb::addr_t metadata_size =
sizeof(uint32_t) + sizeof(uint32_t); // count + entsize
- Status error;
+ /// Sanity check: m_count and m_entsize are external input, guard against
+ /// invalid values using an arbitrary 1GB maximum size.
+ const size_t memory_needed = static_cast<size_t>(m_count) * m_entsize;
----------------
Teemperor wrote:
You could also do this:
```cpp
if (llvm::AddOverflow<size_t>(m_count, m_entsize, /*Result=*/memory_needed))
return llvm::createStringError("Shared Cache size computation overflowed");
```
Having said that, we essentially just blindly read what the runtime tells us,
so it's not really important that we sanitise input here...
https://github.com/llvm/llvm-project/pull/211774
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits