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': _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits