In the constructor, the initial registry is being set as msg.sender instead of _registry which is not intended. If the msg.sender is not a contract, it blocks the donate function call. If msg.sender is a contract but does not implement CharityRegistry, it will block the donate function call.
This blocks the donate function for the users until the owner updates the registry to the correct address.
Manual review
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.