[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