llvm-undname: Fix stack overflow on invalid found by oss-fuzz
llvm-svn: 358852
diff --git a/llvm/lib/Demangle/MicrosoftDemangle.cpp b/llvm/lib/Demangle/MicrosoftDemangle.cpp
index 6431e4a..b421f2a 100644
--- a/llvm/lib/Demangle/MicrosoftDemangle.cpp
+++ b/llvm/lib/Demangle/MicrosoftDemangle.cpp
@@ -1292,7 +1292,7 @@
unsigned BytesDecoded = 0;
while (!MangledName.consumeFront('@')) {
- if (MangledName.size() < 1)
+ if (MangledName.size() < 1 || BytesDecoded >= MaxStringByteLength)
goto StringLiteralError;
StringBytes[BytesDecoded++] = demangleCharLiteral(MangledName);
}