Lack of address check in transferOwnership
function transferOwnership(address _owner) public virtual onlyOwner {
owner = _owner;
emit OwnershipTransferred(msg.sender, _owner);
}
In this function you can accidentally send wrong address of _owner and lost control and ownership of the whole project.
Manual
I would recommend you to use Ownable2Step contract of OpenZeppelin or add check for _owner like this`
require(_owner != address(0))
If you will add this require it will not cover all cases of sending wrong _owner address. I would highly recomment to use Ownable2Step because 2nd part must approve transfer of ownership.
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.