forked from OSchip/llvm-project
96a01fa046
If a header map file is corrupt, the strings in the string table may not be null-terminated. The logic here previously relied on `MemoryBuffer` always being null-terminated, but this isn't actually guaranteed by the class AFAICT. Moreover, we're seeing a lot of crash traces at calls to `strlen()` inside of `lookupFilename()`, so something is going wrong there. Instead, use `strnlen()` to get the length, and check for corruption. Also remove code paths that could call `StringRef(nullptr)`. r261459 made these rather obvious (although they'd been there all along). llvm-svn: 261461 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
HeaderMapTest.cpp | ||
LexerTest.cpp | ||
PPCallbacksTest.cpp | ||
PPConditionalDirectiveRecordTest.cpp |