From 4989a881c19cf636b4e2e96754ad4276e7fc46f7 Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Fri, 21 Aug 2026 13:13:48 +0200 Subject: [PATCH] isolate a malformed card response to the card that caused it --- .../com/sparrowwallet/sparrow/control/CardImportPane.java | 5 +++++ src/main/java/com/sparrowwallet/sparrow/io/Hwi.java | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/com/sparrowwallet/sparrow/control/CardImportPane.java b/src/main/java/com/sparrowwallet/sparrow/control/CardImportPane.java index 7cfa4f83..b441bc08 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/CardImportPane.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/CardImportPane.java @@ -112,6 +112,11 @@ public class CardImportPane extends TitledDescriptionPane { setError("Card Error", e.getMessage()); importButton.setDisable(false); return; + } catch(Exception e) { + log.error("Error reading card", e); + setError("Card Error", e.getMessage() == null ? e.getClass().getSimpleName() : e.getMessage()); + importButton.setDisable(false); + return; } CardImportService cardImportService = new CardImportService(importer, policyType, pin.get(), derivation, messageProperty); diff --git a/src/main/java/com/sparrowwallet/sparrow/io/Hwi.java b/src/main/java/com/sparrowwallet/sparrow/io/Hwi.java index 9c3165b2..2e6a5b8b 100644 --- a/src/main/java/com/sparrowwallet/sparrow/io/Hwi.java +++ b/src/main/java/com/sparrowwallet/sparrow/io/Hwi.java @@ -98,6 +98,9 @@ public class Hwi { //ignore } catch(CardException e) { log.info("Error reading card", e); + } catch(Exception e) { + //a card is free to return any bytes it likes, so a malformed response can surface as any runtime exception + log.error("Error reading card", e); } }