projects
/
platform
/
upstream
/
llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0398ccd
)
[demangler] return early if conditional expr parsing failed
author
Erik Pilkington
<erik.pilkington@gmail.com>
Mon, 5 Feb 2018 02:34:41 +0000
(
02:34
+0000)
committer
Erik Pilkington
<erik.pilkington@gmail.com>
Mon, 5 Feb 2018 02:34:41 +0000
(
02:34
+0000)
This should fix some bugs found by oss-fuzz.
llvm-svn: 324203
libcxxabi/src/cxa_demangle.cpp
patch
|
blob
|
history
diff --git
a/libcxxabi/src/cxa_demangle.cpp
b/libcxxabi/src/cxa_demangle.cpp
index
0bfbffa
..
c97df8a
100644
(file)
--- a/
libcxxabi/src/cxa_demangle.cpp
+++ b/
libcxxabi/src/cxa_demangle.cpp
@@
-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':