RootCauseunvalidated
read(0, student->grade, 5); — if(strncmp(student->grade, "A+", 2) == 0). Tension: The extra byte isn't treated as the first byte of your passcode input. Outcome: it overflows into the first byte of `student->passcode`.
6f8bd1df-4bc4-4122-a4ea-0b0a25da2c0e
read(0, student->grade, 5); — if(strncmp(student->grade, "A+", 2) == 0). Tension: The extra byte isn't treated as the first byte of your passcode input. Outcome: it overflows into the first byte of student->passcode.