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);
     }