aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-07-28 16:06:49 +0800
committerchriseth <chris@ethereum.org>2017-07-28 21:32:42 +0800
commitb74118ec57b2316c843961fc3e1dbb2e5eef35dd (patch)
tree65ae52676ef1b875b4c479e5915a866229f960c1 /libsolidity
parent368a8a62c1c2c34cdcd1edb3b1ce1d5a2a3a2870 (diff)
downloaddexon-solidity-b74118ec57b2316c843961fc3e1dbb2e5eef35dd.tar.gz
dexon-solidity-b74118ec57b2316c843961fc3e1dbb2e5eef35dd.tar.zst
dexon-solidity-b74118ec57b2316c843961fc3e1dbb2e5eef35dd.zip
Fix for invalid clearing of memory in ecrecover.
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/codegen/ExpressionCompiler.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp
index a35008bf..02cc62be 100644
--- a/libsolidity/codegen/ExpressionCompiler.cpp
+++ b/libsolidity/codegen/ExpressionCompiler.cpp
@@ -1622,7 +1622,7 @@ void ExpressionCompiler::appendExternalFunctionCall(
// zero bytes (which we cannot detect).
solAssert(0 < retSize && retSize <= 32, "");
utils().fetchFreeMemoryPointer();
- m_context << Instruction::DUP1 << u256(0) << Instruction::MSTORE;
+ m_context << u256(0) << Instruction::DUP2 << Instruction::MSTORE;
m_context << u256(32) << Instruction::ADD;
utils().storeFreeMemoryPointer();
}