diff options
author | Nico Weber <nicolasweber@gmx.de> | 2019-04-14 23:32:37 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2019-04-14 23:32:37 +0000 |
commit | ae050d214b94e05f0079c08f2f3270b66cb92000 (patch) | |
tree | 43929371764f70d1803ac2bc5c7fabc8c90e233e /llvm/lib/Demangle/MicrosoftDemangle.cpp | |
parent | 274f305a4189bff76c54c7f4f9cac426cdff65a4 (diff) | |
download | llvm-ae050d214b94e05f0079c08f2f3270b66cb92000.zip llvm-ae050d214b94e05f0079c08f2f3270b66cb92000.tar.gz llvm-ae050d214b94e05f0079c08f2f3270b66cb92000.tar.bz2 |
llvm-undname: Fix oss-fuzz-foudn crash-on-invalid with incomplete special table nodes
llvm-svn: 358367
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangle.cpp')
-rw-r--r-- | llvm/lib/Demangle/MicrosoftDemangle.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Demangle/MicrosoftDemangle.cpp b/llvm/lib/Demangle/MicrosoftDemangle.cpp index 882913a9..2b41c00 100644 --- a/llvm/lib/Demangle/MicrosoftDemangle.cpp +++ b/llvm/lib/Demangle/MicrosoftDemangle.cpp @@ -276,6 +276,10 @@ Demangler::demangleSpecialTableSymbolNode(StringView &MangledName, SpecialTableSymbolNode *STSN = Arena.alloc<SpecialTableSymbolNode>(); STSN->Name = QN; bool IsMember = false; + if (MangledName.empty()) { + Error = true; + return nullptr; + } char Front = MangledName.popFront(); if (Front != '6' && Front != '7') { Error = true; |