mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 21:24:00 +00:00
[BitcodeReader] Sanity check on Comdat ID
Shouldn't be an assert, since user input can trigger it. Bug found with AFL fuzz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238261 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -2956,7 +2956,8 @@ std::error_code BitcodeReader::ParseModule(bool Resume,
|
||||
|
||||
if (Record.size() > 11) {
|
||||
if (unsigned ComdatID = Record[11]) {
|
||||
assert(ComdatID <= ComdatList.size());
|
||||
if (ComdatID > ComdatList.size())
|
||||
return Error("Invalid global variable comdat ID");
|
||||
NewGV->setComdat(ComdatList[ComdatID - 1]);
|
||||
}
|
||||
} else if (hasImplicitComdat(RawLinkage)) {
|
||||
@ -3020,7 +3021,8 @@ std::error_code BitcodeReader::ParseModule(bool Resume,
|
||||
|
||||
if (Record.size() > 12) {
|
||||
if (unsigned ComdatID = Record[12]) {
|
||||
assert(ComdatID <= ComdatList.size());
|
||||
if (ComdatID > ComdatList.size())
|
||||
return Error("Invalid function comdat ID");
|
||||
Func->setComdat(ComdatList[ComdatID - 1]);
|
||||
}
|
||||
} else if (hasImplicitComdat(RawLinkage)) {
|
||||
|
Reference in New Issue
Block a user