Question.6
A firmware code review finds this in a long-running IoT device:
void handle_mqtt() { char* payload = new char[msg_len]; decode(payload, msg_len); if (error) return; // <-- LEAK! delete[] payload; }
What is the bug?
Select Answer
msg_len could be zero
msg_len
decode may corrupt payload
decode
payload
The early return on error skips delete[]
delete[]
process should take a reference