Return error when Le calculation overflows
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user