Skip to content

Commit

Permalink
boardd: return earlier from bad unpack (commaai#31687)
Browse files Browse the repository at this point in the history
  • Loading branch information
adeebshihadeh authored Mar 4, 2024
1 parent 15955bf commit 1728355
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions selfdrive/boardd/panda.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down

0 comments on commit 1728355

Please sign in to comment.