Merge pull request #7528 from ethereum/fix-7434

yul interpreter: Initialize calldata with random data
This commit is contained in:
chriseth 2019-10-28 12:39:27 +01:00 committed by GitHub
commit 81e2d1ed14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,6 +31,18 @@ void yulFuzzerUtil::interpret(
InterpreterState state; InterpreterState state;
state.maxTraceSize = _maxTraceSize; state.maxTraceSize = _maxTraceSize;
state.maxSteps = _maxSteps; state.maxSteps = _maxSteps;
// Add 64 bytes of pseudo-randomly generated calldata so that
// calldata opcodes perform non trivial work.
state.calldata = {
0xe9, 0x96, 0x40, 0x7d, 0xa5, 0xda, 0xb0, 0x2d,
0x97, 0xf5, 0xc3, 0x44, 0xd7, 0x65, 0x0a, 0xd8,
0x2c, 0x14, 0x3a, 0xf3, 0xe7, 0x40, 0x0f, 0x1e,
0x67, 0xce, 0x90, 0x44, 0x2e, 0x92, 0xdb, 0x88,
0xb8, 0x43, 0x9c, 0x41, 0x42, 0x08, 0xf1, 0xd7,
0x65, 0xe9, 0x7f, 0xeb, 0x7b, 0xb9, 0x56, 0x9f,
0xc7, 0x60, 0x5f, 0x7c, 0xcd, 0xfb, 0x92, 0xcd,
0x8e, 0xf3, 0x9b, 0xe4, 0x4f, 0x6c, 0x14, 0xde
};
Interpreter interpreter(state, _dialect); Interpreter interpreter(state, _dialect);
interpreter(*_ast); interpreter(*_ast);
state.dumpTraceAndState(_os); state.dumpTraceAndState(_os);