Skip to content

Commit 6f44bb7

Browse files
[Object] Ensure header size not to underflow in OffloadBinary::create
Prevent potential integer underflows when header size is not valid. Fixes: #86280.
1 parent 9c0a065 commit 6f44bb7

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

llvm/lib/Object/OffloadBinary.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,10 @@ OffloadBinary::create(MemoryBufferRef Buf) {
189189
return errorCodeToError(object_error::parse_failed);
190190

191191
if (TheHeader->Size > Buf.getBufferSize() ||
192-
TheHeader->EntryOffset > TheHeader->Size - sizeof(Entry) ||
192+
TheHeader->Size < sizeof(Entry) || TheHeader->Size < sizeof(Header))
193+
return errorCodeToError(object_error::unexpected_eof);
194+
195+
if (TheHeader->EntryOffset > TheHeader->Size - sizeof(Entry) ||
193196
TheHeader->EntrySize > TheHeader->Size - sizeof(Header))
194197
return errorCodeToError(object_error::unexpected_eof);
195198

0 commit comments

Comments
 (0)