From d1faab040fa8cb2118674b20b48cd9b082e7d27b Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Mon, 3 Jul 2017 16:01:50 +0200 Subject: Add a test RETURNDATACOPY at the beginning of a program should throw an exception if offset + size = 2^256 --- .../returndatacopy_initial_256Filler.json | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json (limited to 'src') diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json new file mode 100644 index 000000000..6896c6a34 --- /dev/null +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json @@ -0,0 +1,60 @@ +{ + "returndatacopy_initial_256" : { + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + } + } + } + ], + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "{ (MSTORE 0 0x112233445566778899aabbccddeeff) (RETURNDATACOPY (- 0 32) 0 32) (SSTORE 0 (MLOAD 0)) }", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} -- cgit v1.2.3 From 176d44890f7cd751e578fc79d7ab186cbb35db17 Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Thu, 6 Jul 2017 15:15:24 +0200 Subject: Add one-less and one-more numbers --- .../stReturnDataTest/returndatacopy_initial_256Filler.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json index 6896c6a34..d47e256c8 100644 --- a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json @@ -27,7 +27,7 @@ "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "{ (MSTORE 0 0x112233445566778899aabbccddeeff) (RETURNDATACOPY (- 0 32) 0 32) (SSTORE 0 (MLOAD 0)) }", + "code" : "{ (CALLDATACOPY 0 0 32) (RETURNDATACOPY (- 0 (MLOAD 0)) 0 0x64) (MSTORE 0 0x112233445566778899aabbccddeeff) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" @@ -43,7 +43,14 @@ }, "transaction" : { "data" : [ - "" + "0: the sum of RETURNDATACOPY's first and third arguments is 2^256", + "1: one smaller", + "2: one bigger", "anyway the RETURNDATACOPY should cause an exceptional halt." + ], + "data" : [ + "0x0000000000000000000000000000000000000000000000000000000000000064", + "0x0000000000000000000000000000000000000000000000000000000000000063", + "0x0000000000000000000000000000000000000000000000000000000000000065" ], "gasLimit" : [ "0x0a00000000" -- cgit v1.2.3 From 241f65139b23e1ae4f5811a90d291b9132321c94 Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Thu, 6 Jul 2017 16:57:40 +0200 Subject: Use CALLDATALOAD instead of CALLDATACOPY and MLOAD --- .../stReturnDataTest/returndatacopy_initial_256Filler.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json index d47e256c8..c185e8c4a 100644 --- a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json @@ -27,7 +27,7 @@ "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "{ (CALLDATACOPY 0 0 32) (RETURNDATACOPY (- 0 (MLOAD 0)) 0 0x64) (MSTORE 0 0x112233445566778899aabbccddeeff) (SSTORE 0 (MLOAD 0)) }", + "code" : "{ (RETURNDATACOPY (- 0 (CALLDATALOAD 0)) 0 0x64) (MSTORE 0 0x112233445566778899aabbccddeeff) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" -- cgit v1.2.3