From 6e80effa947d9581e5ef8c4e02a45725f5af4346 Mon Sep 17 00:00:00 2001 From: Dimitry Date: Fri, 13 Oct 2017 15:34:21 +0300 Subject: modexp input test Consensus big in Parity: gas calculation of modexp is subject to overflow for certain inputs. Found via manual review. A case was found where consensus issue could be achieved in ~500K gas. --- .../stPreCompiledContracts2/modexpRandomInput.json | 103 +++++++++++++++++++-- 1 file changed, 97 insertions(+), 6 deletions(-) (limited to 'GeneralStateTests') diff --git a/GeneralStateTests/stPreCompiledContracts2/modexpRandomInput.json b/GeneralStateTests/stPreCompiledContracts2/modexpRandomInput.json index 29f7ce01a..b6df95d66 100644 --- a/GeneralStateTests/stPreCompiledContracts2/modexpRandomInput.json +++ b/GeneralStateTests/stPreCompiledContracts2/modexpRandomInput.json @@ -5,7 +5,7 @@ "filledwith" : "cpp-1.3.0+commit.72502df4.Linux.g++", "lllcversion" : "Version: 0.4.18-develop.2017.10.11+commit.81f9f86c.Linux.g++", "source" : "src/GeneralStateTestsFiller/stPreCompiledContracts2/modexpRandomInputFiller.json", - "sourceHash" : "add81d3ccf6c308036c44e9a3dbd493cfb081b27564ddc2eb5f6c1f339937273" + "sourceHash" : "b71656b4a8313128db869e62e4c34473047c15d6b49593c0850e32399b789f37" }, "env" : { "currentCoinbase" : "0x3535353535353535353535353535353535353535", @@ -36,7 +36,7 @@ "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" }, { - "hash" : "0xafb25c98bdca039c00783f01d11299f8261c6ba5ac6409db0c7e9a51c65ef93d", + "hash" : "0x1b3b7a9d1f18201ed84812107471f14b939a541f3d3dc67c252acbef1ec18da0", "indexes" : { "data" : 1, "gas" : 0, @@ -45,13 +45,31 @@ "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" }, { - "hash" : "0xf801b7b86064128c0a11a9b07423ab008b607de8e2562c801e8ed52566b97716", + "hash" : "0x6fc6b2aa12ab2f5493fb2a4cd1e50255a543774db1edeb21ff7ce08e27dc24a7", "indexes" : { "data" : 1, "gas" : 1, "value" : 0 }, "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x1b3b7a9d1f18201ed84812107471f14b939a541f3d3dc67c252acbef1ec18da0", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x6fc6b2aa12ab2f5493fb2a4cd1e50255a543774db1edeb21ff7ce08e27dc24a7", + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" } ], "EIP150" : [ @@ -90,6 +108,24 @@ "value" : 0 }, "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x10e93b7f945816acb550dcbc9cbc2c9a0f10205ededcf9c92d9750225840231d", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x10e93b7f945816acb550dcbc9cbc2c9a0f10205ededcf9c92d9750225840231d", + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" } ], "EIP158" : [ @@ -128,6 +164,24 @@ "value" : 0 }, "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0xb2613951d34aca5ac4f2ce4b7220dd645c3f3bfeccbd5d397e00261c28441e64", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0xb2613951d34aca5ac4f2ce4b7220dd645c3f3bfeccbd5d397e00261c28441e64", + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" } ], "Frontier" : [ @@ -166,6 +220,24 @@ "value" : 0 }, "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x10e93b7f945816acb550dcbc9cbc2c9a0f10205ededcf9c92d9750225840231d", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x10e93b7f945816acb550dcbc9cbc2c9a0f10205ededcf9c92d9750225840231d", + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" } ], "Homestead" : [ @@ -204,6 +276,24 @@ "value" : 0 }, "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x10e93b7f945816acb550dcbc9cbc2c9a0f10205ededcf9c92d9750225840231d", + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" + }, + { + "hash" : "0x10e93b7f945816acb550dcbc9cbc2c9a0f10205ededcf9c92d9750225840231d", + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : 0 + }, + "logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347" } ] }, @@ -219,11 +309,12 @@ "transaction" : { "data" : [ "0x00000000000000000000000000000000000000000000000000000000000000e300000000000000000000000000000000000000000000000000", - "0x00000000008000000000000000000000000000000000000000000000000000000000000400000000000000000000000a" + "0x00000000008000000000000000000000000000000000000000000000000000000000000400000000000000000000000a", + "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001147000000000000000000000000000000000000000000000000000000000061660350000000000000000000000000000000000000000000000000000000000000008" ], "gasLimit" : [ - "0x01adb0", - "0x030d40" + "0x0ad570", + "0x6acfc0" ], "gasPrice" : "0x01", "nonce" : "0x00", -- cgit