diff options
author | chriseth <chris@ethereum.org> | 2017-07-28 16:06:49 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2017-07-28 21:32:42 +0800 |
commit | b74118ec57b2316c843961fc3e1dbb2e5eef35dd (patch) | |
tree | 65ae52676ef1b875b4c479e5915a866229f960c1 /libsolidity/codegen | |
parent | 368a8a62c1c2c34cdcd1edb3b1ce1d5a2a3a2870 (diff) | |
download | dexon-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/codegen')
-rw-r--r-- | libsolidity/codegen/ExpressionCompiler.cpp | 2 |
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(); } |