The RustFund smart contract allows contributors to continue making contributions even after a project's funding goal has been reached.
The contribute function does not check whether the funding goal has been reached before accepting new contributions:
The function only verifies if the deadline has passed (if one is set) but never compares fund.amount_raised against fund.goal to determine if the project is already fully funded. So, the contributors will end up losing the money they contributed over funding.goal as the creator can withdraw all the money/tokens from the campaign.
Contributors may unknowingly fund projects beyond their stated needs, with no mechanism to protect them.
Manual review
Modify the contribute function to check if the funding goal has been reached:
Typically the crowdfunding campaigns allow contribution after the goal is achieved. This is normal, because the goal is the campaign to raise as much as possible funds. Therefore, this is a design choice.
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.