GivingThanks.constructor()
assigns the CharityRegistry
contract to msg.sender
, not to the _registry
sent as a parameter.
When deploying the GivingThanks
contract, the CharityRegistry public registry
variable should be set to correctly point to the CharityRegistry
contract. This is done by assigning the CharityRegistry
address sent during deployment via the _registry
parameter to the constructor. The constructor instead assigns the address msg.sender
to the CharityRegistry
contract.
Incorrect assignment of the CharityRegistry
contract causes the entire GivingThanks
to fail to function properly. It will revert every time someone wants to donate.
Manual review
Correct GivingThanks.constructor()
as follows:
Likelyhood: High, the parameter is not well used and won't be set. Impact: Low, can be changed with the setter and no one will be able to donate to malicious charity.
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.