boardd: return earlier from bad unpack (#31687)

old-commit-hash: 1728355498d1e5307e7e96324b9232692d62eab6
This commit is contained in:
Adeeb Shihadeh
2024-03-03 19:15:21 -08:00
committed by GitHub
parent 1bbc97f242
commit c4956c9c64
+7 -6
View File
@@ -284,6 +284,13 @@ bool Panda::unpack_can_buffer(uint8_t *data, uint32_t &size, std::vector<can_fra
break;
}
if (calculate_checksum(&data[pos], sizeof(can_header) + data_len) != 0) {
// TODO: also reset CAN comms?
LOGE("Panda CAN checksum failed");
size = 0;
return false;
}
can_frame &canData = out_vec.emplace_back();
canData.busTime = 0;
canData.address = header.addr;
@@ -295,12 +302,6 @@ bool Panda::unpack_can_buffer(uint8_t *data, uint32_t &size, std::vector<can_fra
canData.src += CAN_RETURNED_BUS_OFFSET;
}
if (calculate_checksum(&data[pos], sizeof(can_header) + data_len) != 0) {
LOGE("Panda CAN checksum failed");
size = 0;
return false;
}
canData.dat.assign((char *)&data[pos + sizeof(can_header)], data_len);
pos += sizeof(can_header) + data_len;