<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19947">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">iso7816_fsm: Fix TPDUs wih Le == 1 (single byte reads)<br><br>If we expect only a single byte in response to the TPDU header,<br>the cuart driver sends us RX_SINGLE events, not RX_COMPLETE events.<br><br>Change-Id: I3f025bc88b9aacc07ae87307328cec56efbac2ab<br>Closes: OS#4741<br>---<br>M ccid_common/iso7816_fsm.c<br>1 file changed, 8 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c</span><br><span>index 307dac3..02e7c0d 100644</span><br><span>--- a/ccid_common/iso7816_fsm.c</span><br><span>+++ b/ccid_common/iso7816_fsm.c</span><br><span>@@ -1273,7 +1273,12 @@</span><br><span>                        } else {</span><br><span>                             card_uart_set_rx_threshold(ip->uart, tpduh->p3);</span><br><span>                               card_uart_ctrl(ip->uart, CUART_CTL_RX_TIMER_HINT, tpduh->p3);</span><br><span style="color: hsl(0, 100%, 40%);">-                             osmo_fsm_inst_state_chg(fi, TPDU_S_RX_REMAINING, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+                               /* if the expected length is only one byte, cuart will issue</span><br><span style="color: hsl(120, 100%, 40%);">+                           * TPDU_S_RX_SINGLE instead of TPDU_S_RX_REMAINING (OS#4741) */</span><br><span style="color: hsl(120, 100%, 40%);">+                               if (tpduh->p3 == 1)</span><br><span style="color: hsl(120, 100%, 40%);">+                                        osmo_fsm_inst_state_chg(fi, TPDU_S_RX_SINGLE, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+                          else</span><br><span style="color: hsl(120, 100%, 40%);">+                                  osmo_fsm_inst_state_chg(fi, TPDU_S_RX_REMAINING, 0, 0);</span><br><span>                      }</span><br><span>            } else if (byte == (tpduh->ins ^ 0xFF)) {</span><br><span>                         /* transmit/recieve single byte then wait for proc */</span><br><span>@@ -1521,7 +1526,8 @@</span><br><span>                .name = "RX_SINGLE",</span><br><span>               .in_event_mask = S(ISO7816_E_RX_SINGLE),</span><br><span>             .out_state_mask = S(TPDU_S_INIT) |</span><br><span style="color: hsl(0, 100%, 40%);">-                                S(TPDU_S_PROCEDURE),</span><br><span style="color: hsl(120, 100%, 40%);">+                                  S(TPDU_S_PROCEDURE) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                 S(TPDU_S_SW1),</span><br><span>             .action = tpdu_s_rx_single_action,</span><br><span>   },</span><br><span>   [TPDU_S_SW1] = {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19947">change 19947</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19947"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ccid-firmware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I3f025bc88b9aacc07ae87307328cec56efbac2ab </div>
<div style="display:none"> Gerrit-Change-Number: 19947 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>