From d10e2652aeb3bde01fd729ef21b3eb5cafcfb27d Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Wed, 8 Aug 2018 11:50:18 -0700 Subject: Revert incrementing memory ptr in dispatchTransferFrom --- .../src/2.0.0/protocol/Exchange/MixinAssetProxyDispatcher.sol | 6 +----- .../contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol | 1 - .../contracts/src/2.0.0/protocol/Exchange/libs/LibAbiEncoder.sol | 5 ++--- 3 files changed, 3 insertions(+), 9 deletions(-) (limited to 'packages/contracts/src') diff --git a/packages/contracts/src/2.0.0/protocol/Exchange/MixinAssetProxyDispatcher.sol b/packages/contracts/src/2.0.0/protocol/Exchange/MixinAssetProxyDispatcher.sol index b34903668..e9f882194 100644 --- a/packages/contracts/src/2.0.0/protocol/Exchange/MixinAssetProxyDispatcher.sol +++ b/packages/contracts/src/2.0.0/protocol/Exchange/MixinAssetProxyDispatcher.sol @@ -159,22 +159,18 @@ contract MixinAssetProxyDispatcher is } /////// Call `assetProxy.transferFrom` using the constructed calldata /////// - let inputLen := sub(cdEnd, cdStart) let success := call( gas, // forward all gas assetProxy, // call address of asset proxy 0, // don't send any ETH cdStart, // pointer to start of input - inputLen, // length of input + sub(cdEnd, cdStart), // length of input cdStart, // write output over input 512 // reserve 512 bytes for output ) if iszero(success) { revert(cdStart, returndatasize()) } - - // Increment free memory pointer - mstore(64, add(cdStart, inputLen)) } } } diff --git a/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol b/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol index b5de1a5de..821d30279 100644 --- a/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol +++ b/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol @@ -142,7 +142,6 @@ contract MixinTransactions is // Compute hash result := keccak256(memPtr, 128) } - return result; } diff --git a/packages/contracts/src/2.0.0/protocol/Exchange/libs/LibAbiEncoder.sol b/packages/contracts/src/2.0.0/protocol/Exchange/libs/LibAbiEncoder.sol index f047342b3..4aad37709 100644 --- a/packages/contracts/src/2.0.0/protocol/Exchange/libs/LibAbiEncoder.sol +++ b/packages/contracts/src/2.0.0/protocol/Exchange/libs/LibAbiEncoder.sol @@ -204,11 +204,10 @@ contract LibAbiEncoder { } // Set length of calldata - let calldataLen := sub(dataAreaEnd, add(fillOrderCalldata, 0x20)) - mstore(fillOrderCalldata, calldataLen) + mstore(fillOrderCalldata, sub(dataAreaEnd, add(fillOrderCalldata, 0x20))) // Increment free memory pointer - mstore(0x40, add(fillOrderCalldata, add(calldataLen, 0x20))) + mstore(0x40, dataAreaEnd) } return fillOrderCalldata; -- cgit v1.2.3