Solidity Bug Info

Bug Name Description Severity
The creation code of a contract that does not define a constructor but has a base that does define a constructor did not revert for calls with non-zero value.
Starting from Solidity 0.4.5 the creation code of contracts without explicit payable constructor is supposed to contain a callvalue check that results in contract creation reverting, if non-zero value is passed. However, this check was missing in case no explicit constructor was defined in a contract at all, but the contract has a base that does define a constructor. In these cases it is possible to send value in a contract creation transaction or using inline assembly without revert, even though the creation code is supposed to be non-payable.

- First Introduced: 0.4.5
- Fixed in Version: 0.6.8
- Published:
- Severity<: very low

very low