The nonReentrant function is not setting the value of the locked varaible to true before executing the logic that is sensetive to reentrance.
The nonReentrant function is executing function that are sensetive to reentrance without using the lock mutex properly. In order to follow the correct logic we need to set the locked varaible to true before executing the sensetive code and the release the mutex by setting the value back to false after code execution.
The refund function is now vulnerabule to reentrant attacks as the mutex has no impact.
Manual Review
Set the value of the locked varaible to true before executing the sensetive to reentrance code logic.
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.