From 0da13cd61fc4485496227645c26bee34f8ad39ac Mon Sep 17 00:00:00 2001 From: Kamran Khan Date: Wed, 9 Dec 2020 20:43:06 -0800 Subject: [PATCH] De-deuplicate le length calculation --- src/ctap/apdu.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ctap/apdu.rs b/src/ctap/apdu.rs index 70b17eb..7136084 100644 --- a/src/ctap/apdu.rs +++ b/src/ctap/apdu.rs @@ -172,9 +172,12 @@ impl TryFrom<&[u8]> for APDU { if payload.len() < extended_apdu_lc + 3 { return Err(ApduStatusCode::SW_WRONG_LENGTH); } - let extended_apdu_le_len: usize = match payload.len() - extended_apdu_lc - 3 { + + let possible_le_len = payload.len() as i32 - extended_apdu_lc as i32 - 3; + + let extended_apdu_le_len: usize = match possible_le_len { // There's some possible Le bytes at the end - 0..=3 => payload.len() - extended_apdu_lc - 3, + 0..=3 => possible_le_len as usize, // There are more bytes than even Le3 can consume, return an error _ => return Err(ApduStatusCode::SW_WRONG_LENGTH), };