diff options
author | Alon Zakai <alonzakai@gmail.com> | 2018-03-08 14:54:34 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-08 14:54:34 -0800 |
commit | 0008b795d11d65d0759c3c0a71ee74b536f1ecf8 (patch) | |
tree | e488a373c9e9462ff2c04d417474010d18e478d6 /src | |
parent | 9ca513a79c38ae60fbf3773af94e3ee10ca8d800 (diff) | |
download | binaryen-0008b795d11d65d0759c3c0a71ee74b536f1ecf8.tar.gz binaryen-0008b795d11d65d0759c3c0a71ee74b536f1ecf8.tar.bz2 binaryen-0008b795d11d65d0759c3c0a71ee74b536f1ecf8.zip |
Fuzz fix: fix copying of host node operands (#1464)
Diffstat (limited to 'src')
-rw-r--r-- | src/ir/ExpressionManipulator.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ir/ExpressionManipulator.cpp b/src/ir/ExpressionManipulator.cpp index dcbb4a056..a3bff2d82 100644 --- a/src/ir/ExpressionManipulator.cpp +++ b/src/ir/ExpressionManipulator.cpp @@ -140,8 +140,12 @@ Expression* flexibleCopy(Expression* original, Module& wasm, CustomCopier custom return builder.makeReturn(copy(curr->value)); } Expression* visitHost(Host *curr) { - assert(curr->operands.size() == 0); - return builder.makeHost(curr->op, curr->nameOperand, {}); + std::vector<Expression*> operands; + for (Index i = 0; i < curr->operands.size(); i++) { + operands.push_back(copy(curr->operands[i])); + } + auto* ret = builder.makeHost(curr->op, curr->nameOperand, std::move(operands)); + return ret; } Expression* visitNop(Nop *curr) { return builder.makeNop(); |