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);
|
return Err(ApduStatusCode::SW_WRONG_LENGTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
let extended_apdu_le_len: usize =
|
let extended_apdu_le_len: usize = payload
|
||||||
payload.len().checked_sub(extended_apdu_lc + 3).unwrap_or(0);
|
.len()
|
||||||
|
.checked_sub(extended_apdu_lc + 3)
|
||||||
|
.unwrap_or(0xff);
|
||||||
if extended_apdu_le_len > 3 {
|
if extended_apdu_le_len > 3 {
|
||||||
return Err(ApduStatusCode::SW_WRONG_LENGTH);
|
return Err(ApduStatusCode::SW_WRONG_LENGTH);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user