[llvm] ea93ca6 - [Bitcode] Fix size check for DIImportedEntity record
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 9 05:23:41 PST 2022
Author: Nikita Popov
Date: 2022-02-09T14:23:30+01:00
New Revision: ea93ca60efedb4419a123d328150334a566d167a
URL: https://github.com/llvm/llvm-project/commit/ea93ca60efedb4419a123d328150334a566d167a
DIFF: https://github.com/llvm/llvm-project/commit/ea93ca60efedb4419a123d328150334a566d167a.diff
LOG: [Bitcode] Fix size check for DIImportedEntity record
This was using && instead of ||.
Added:
llvm/test/Bitcode/Inputs/invalid-diimportedentity-record.bc
Modified:
llvm/lib/Bitcode/Reader/MetadataLoader.cpp
llvm/test/Bitcode/invalid.test
Removed:
################################################################################
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index 29a909da460e..1955443e73db 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -2033,8 +2033,8 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
break;
}
case bitc::METADATA_IMPORTED_ENTITY: {
- if (Record.size() < 6 && Record.size() > 8)
- return error("Invalid record");
+ if (Record.size() < 6 || Record.size() > 8)
+ return error("Invalid DIImportedEntity record");
IsDistinct = Record[0];
bool HasFile = (Record.size() >= 7);
diff --git a/llvm/test/Bitcode/Inputs/invalid-diimportedentity-record.bc b/llvm/test/Bitcode/Inputs/invalid-diimportedentity-record.bc
new file mode 100644
index 000000000000..d163d124b825
Binary files /dev/null and b/llvm/test/Bitcode/Inputs/invalid-diimportedentity-record.bc
diff er
diff --git a/llvm/test/Bitcode/invalid.test b/llvm/test/Bitcode/invalid.test
index 92c65ce05d4e..26371504bab7 100644
--- a/llvm/test/Bitcode/invalid.test
+++ b/llvm/test/Bitcode/invalid.test
@@ -286,3 +286,8 @@ RUN: not llvm-dis -disable-output %p/Inputs/invalid-chunk-size.bc 2>&1 | \
RUN: FileCheck --check-prefix=INVALID-CHUNK-SIZE %s
INVALID-CHUNK-SIZE: Fixed or VBR abbrev record with size > MaxChunkData
+
+RUN: not llvm-dis -disable-output %p/Inputs/invalid-diimportedentity-record.bc 2>&1 | \
+RUN: FileCheck --check-prefix=INVALID-DIIMPORTEDENTITY-RECORD %s
+
+INVALID-DIIMPORTEDENTITY-RECORD: Invalid DIImportedEntity record
More information about the llvm-commits
mailing list