Return error when Le calculation overflows

This commit is contained in:
Kamran Khan
2020-12-10 21:27:52 -08:00
parent a7eb38aac8
commit f74d1b9ffd

View File

@@ -174,8 +174,10 @@ impl TryFrom<&[u8]> for APDU {
return Err(ApduStatusCode::SW_WRONG_LENGTH);
}
let extended_apdu_le_len: usize =
payload.len().checked_sub(extended_apdu_lc + 3).unwrap_or(0);
let extended_apdu_le_len: usize = payload
.len()
.checked_sub(extended_apdu_lc + 3)
.unwrap_or(0xff);
if extended_apdu_le_len > 3 {
return Err(ApduStatusCode::SW_WRONG_LENGTH);
}