laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42776?usp=email ) Change subject: 7816fsm: Handle unexpected procedure bytes gracefully ...................................................................... 7816fsm: Handle unexpected procedure bytes gracefully Dispatch TPDU_FAILED_IND and don't assert for wrong procedure bytes. Closes:SYS#8050 Change-Id: Ic53814540775f902fce644a5565a7bd2f177a7fe --- M ccid_common/iso7816_fsm.c 1 file changed, 7 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c index 4e4c2b1..9899e16 100644 --- a/ccid_common/iso7816_fsm.c +++ b/ccid_common/iso7816_fsm.c @@ -1398,8 +1398,11 @@ card_uart_ctrl(ip->uart, CUART_CTL_RX_TIMER_HINT, 1); osmo_fsm_inst_state_chg(fi, TPDU_S_RX_SINGLE, 0, 0); } - } else - OSMO_ASSERT(0); + } else { + LOGPFSML(fi, LOGL_ERROR, "Unexpected byte 0x%02x in procedure state (INS=0x%02x)\n", byte, tpduh->ins); + osmo_fsm_inst_state_chg(fi, TPDU_S_DONE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, ISO7816_E_TPDU_FAILED_IND, tfp->tpdu); + } break; default: OSMO_ASSERT(0); @@ -1616,7 +1619,8 @@ S(TPDU_S_RX_SINGLE) | S(TPDU_S_TX_REMAINING) | S(TPDU_S_TX_SINGLE) | - S(TPDU_S_SW2), + S(TPDU_S_SW2) | + S(TPDU_S_DONE), .action = tpdu_s_procedure_action, }, [TPDU_S_TX_REMAINING] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42776?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Ic53814540775f902fce644a5565a7bd2f177a7fe Gerrit-Change-Number: 42776 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen <ewild@sysmocom.de> Gerrit-Reviewer: jolly <andreas@eversberg.eu> Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu>