Failing to check for a possible 0 address input (especially in constructors, setters, and initializer functions) before such interactions can lead to unexpected dangerous behavior. A zero address check ensures that addresses are explicitly provided and not left uninitialized or set to a default, invalid state.
in SablierFlow.sol
and SablierFlowBase.sol
there isn't check for address(0)
check Base.t.sol
and using address(0) for SablierFlow constructor
The ERC721
base constructor is called with the name "Sablier Flow NFT" and symbol "SAB-FLOW".
The SablierFlowBase
base constructor is then called with address(0)
as the initialAdmin
.
Any other parameters passed to the SablierFlow
constructor will be ignored due to the order of inheritance.
Having no admin means there's no way to pause the contract, recover funds, or perform other important administrative actions
Personal Knowledge,Foundry
Use require statements to validate addresses before any operation involving external addresses is performed, especially on constructors, setters or initializer functions.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.