In the GivingThanks contract, the registry variable is improperly initialized in constructor. Instead of using _registry parameter passed to the constructor to set the registry variable, it incorrectly uses msg.sender.
By setting registry = CharityRegistry(msg.sender);, the registry variable is assigned to the deployer of the contract instead of the intended CharityRegistrycontract. This breaks the intended functionality of the protocol making the protocol unusable.
Manual code review
Assign the _registry parameter passed in the constructor to the instance of the CharityRegistry contract.
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.