One of our system invariants is that System upgrade cannot take place unless school's sessionEnd
has reached. However, we can still manage to do the system upgrade while the session is still active.
The upgradeAndUpdate function can be called and executed successfully with a successful system upgrade just after making a call to the startSession function without checking if we are still in session or not.
Proof of Concept:
System can be upgraded during session which can lead to students who have not still gotten their reviews to not get upgraded and for their schoolFees paid to the school to be distributed.
Manual source code review
Add a check to validate that the school session is over before going through with the upgrade:
`graduateAndUpgrade()` can be called successfully even when the school session has not ended
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.