[libcxxabi] r324203 - [demangler] return early if conditional expr parsing failed

Erik Pilkington via cfe-commits cfe-commits at lists.llvm.org
Sun Feb 4 18:34:41 PST 2018


Author: epilk
Date: Sun Feb  4 18:34:41 2018
New Revision: 324203

URL: http://llvm.org/viewvc/llvm-project?rev=324203&view=rev
Log:
[demangler] return early if conditional expr parsing failed

This should fix some bugs found by oss-fuzz.

Modified:
    libcxxabi/trunk/src/cxa_demangle.cpp

Modified: libcxxabi/trunk/src/cxa_demangle.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_demangle.cpp?rev=324203&r1=324202&r2=324203&view=diff
==============================================================================
--- libcxxabi/trunk/src/cxa_demangle.cpp (original)
+++ libcxxabi/trunk/src/cxa_demangle.cpp Sun Feb  4 18:34:41 2018
@@ -2589,10 +2589,15 @@ Node *Db::parseExpr() {
     if (First[1] == 'u') {
       First += 2;
       Node *Cond = parseExpr();
+      if (Cond == nullptr)
+        return nullptr;
       Node *LHS = parseExpr();
+      if (LHS == nullptr)
+        return nullptr;
       Node *RHS = parseExpr();
-      if (Cond && LHS && RHS)
-        return make<ConditionalExpr>(Cond, LHS, RHS);
+      if (RHS == nullptr)
+        return nullptr;
+      return make<ConditionalExpr>(Cond, LHS, RHS);
     }
     return nullptr;
   case 'r':




More information about the cfe-commits mailing list