aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Demangle/MicrosoftDemangle.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2019-04-14 23:32:37 +0000
committerNico Weber <nicolasweber@gmx.de>2019-04-14 23:32:37 +0000
commitae050d214b94e05f0079c08f2f3270b66cb92000 (patch)
tree43929371764f70d1803ac2bc5c7fabc8c90e233e /llvm/lib/Demangle/MicrosoftDemangle.cpp
parent274f305a4189bff76c54c7f4f9cac426cdff65a4 (diff)
downloadllvm-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.cpp4
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;