X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=multipass.rs;fp=multipass.rs;h=8423cd9646939e39beadb590e227889380a37e9a;hb=e34ebce6d26b46e98d3660194608180a48cf3631;hp=073e929216c9265a56952b3ecaaac19ec0d26e9e;hpb=c6421d3f060df4096791375f78bdef879be90098;p=linux-dallas-multipass diff --git a/multipass.rs b/multipass.rs index 073e929..8423cd9 100644 --- a/multipass.rs +++ b/multipass.rs @@ -354,7 +354,13 @@ fn run_apdu(reader_name: &str, apdus: Vec>) -> Result = Vec::new(); for apdu in apdus { - let reply = &transmit_apdu(card.as_mut().unwrap(), &apdu)?; + let reply = match transmit_apdu(card.as_mut().unwrap(), &apdu) { + Ok(r) => r, + Err(err) => { + *card = None; // Clean up. + return Err(err); + } + }; response_json.push(json!({ "apdu": reply }));