Fixes crash while encoding too large arrays.

This commit is contained in:
Erik Kundt
2018-10-30 15:14:57 +01:00
committed by chriseth
parent 0b4f6ab72d
commit 1d8e9af407
5 changed files with 30 additions and 0 deletions
@@ -0,0 +1,5 @@
contract C {
function f(bytes32[1263941234127518272] memory) public pure {}
}
// ----
// TypeError: (26-61): Array is too large to be encoded.
@@ -0,0 +1,11 @@
contract C {
function f(bytes32[1263941234127518272][500] memory) public pure {}
function f(uint[2**30][] memory) public pure {}
function f(uint[2**30][2**30][] memory) public pure {}
function f(uint[2**16][2**16][] memory) public pure {}
}
// ----
// TypeError: (26-66): Array is too large to be encoded.
// TypeError: (96-116): Array is too large to be encoded.
// TypeError: (146-173): Array is too large to be encoded.
// TypeError: (203-230): Array is too large to be encoded.
@@ -0,0 +1,10 @@
pragma experimental ABIEncoderV2;
contract C {
function f(bytes32[1263941234127518272][500] memory) public pure {}
function f(uint[2**30][2**30][][] memory) public pure {}
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.
// TypeError: (61-101): Array is too large to be encoded.
// TypeError: (131-160): Array is too large to be encoded.