Fix check against 0xEF byte in contract creation. #719
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In some transactions, the kernel might process a transaction with contract creation and empty code. In
process_contract_creation_txn_after_constructor
, there is a check that the first byte is not0xef
. The check works for empty contracts in the non-batched case sinceSEGMENT_RETURNDATA
is empty in that case. However, in the batched case, the first byte might come from a previous transaction, if the current contract is empty.This PR addresses this issue by only checking the first byte when
code_size > 0
.