]> granicus.if.org Git - llvm/commitdiff
Fix ASAN failure in cxa_demangle
authorMehdi Amini <mehdi.amini@apple.com>
Fri, 27 Jan 2017 20:32:16 +0000 (20:32 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Fri, 27 Jan 2017 20:32:16 +0000 (20:32 +0000)
Found with ASAN + libFuzzer by Kostya Serebryany <kcc@google.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293330 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Demangle/ItaniumDemangle.cpp

index 59f6c2d3612cc3597d9b7ea9819038c6793c721f..5a0352c539038cf256187b2346986485144a7561 100644 (file)
@@ -1402,7 +1402,8 @@ static const char *parse_function_type(const char *first, const char *last,
         int ref_qual = 0;
         while (true) {
           if (t == last) {
-            db.names.pop_back();
+            if (!db.names.empty())
+              db.names.pop_back();
             return first;
           }
           if (*t == 'E') {