diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2017-08-31 12:50:42 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2017-08-31 12:50:42 +0000 |
commit | 80df64239593200f9d79312fd22975457f981b58 (patch) | |
tree | 5ac69b73e1432c56b605aec4c341ceabf2d2b420 /llvm/lib/BinaryFormat | |
parent | bfcac0b4806ad528c93a65281d7eb0d5f66305e9 (diff) | |
download | bcm5719-llvm-80df64239593200f9d79312fd22975457f981b58.tar.gz bcm5719-llvm-80df64239593200f9d79312fd22975457f981b58.zip |
[BinaryFormat] Fix out of bounds read.
Found by OSS-FUZZ!
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3220
llvm-svn: 312238
Diffstat (limited to 'llvm/lib/BinaryFormat')
-rw-r--r-- | llvm/lib/BinaryFormat/Magic.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/BinaryFormat/Magic.cpp b/llvm/lib/BinaryFormat/Magic.cpp index b19a07a9066..e9b8df93b90 100644 --- a/llvm/lib/BinaryFormat/Magic.cpp +++ b/llvm/lib/BinaryFormat/Magic.cpp @@ -182,7 +182,7 @@ file_magic llvm::identify_magic(StringRef Magic) { break; case 'M': // Possible MS-DOS stub on Windows PE file - if (startswith(Magic, "MZ")) { + if (startswith(Magic, "MZ") && Magic.size() >= 0x3c + 4) { uint32_t off = read32le(Magic.data() + 0x3c); // PE/COFF file, either EXE or DLL. if (off < Magic.size() && |