Minor fixes for usb-ccid.c.
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
2018-11-09 NIIBE Yutaka <gniibe@fsij.org>
|
2018-11-09 NIIBE Yutaka <gniibe@fsij.org>
|
||||||
|
|
||||||
|
* src/usb-ccid.c (ccid_handle_data): Set c->state for pinpad input.
|
||||||
|
(ccid_send_data_block_internal): Fix the case of len == 0.
|
||||||
|
|
||||||
* src/main.c (display_status_code): There is
|
* src/main.c (display_status_code): There is
|
||||||
no case where ccid_state == CCID_STATE_RECEIVE.
|
no case where ccid_state == CCID_STATE_RECEIVE.
|
||||||
* src/gnuk.h (CCID_STATE_RECEIVE): Remove.
|
* src/gnuk.h (CCID_STATE_RECEIVE): Remove.
|
||||||
|
|||||||
@@ -986,6 +986,9 @@ ccid_send_data_block_internal (struct ccid *c, uint8_t status, uint8_t error)
|
|||||||
#endif
|
#endif
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
{
|
{
|
||||||
|
c->epi->buf = NULL;
|
||||||
|
c->epi->tx_done = 1;
|
||||||
|
|
||||||
#ifdef GNU_LINUX_EMULATION
|
#ifdef GNU_LINUX_EMULATION
|
||||||
usb_lld_tx_enable_buf (c->epi->ep_num, endp1_tx_buf,
|
usb_lld_tx_enable_buf (c->epi->ep_num, endp1_tx_buf,
|
||||||
CCID_MSG_HEADER_SIZE);
|
CCID_MSG_HEADER_SIZE);
|
||||||
@@ -1418,6 +1421,7 @@ ccid_handle_data (struct ccid *c)
|
|||||||
c->a->res_apdu_data_len = 0;
|
c->a->res_apdu_data_len = 0;
|
||||||
c->a->res_apdu_data = &c->p[5];
|
c->a->res_apdu_data = &c->p[5];
|
||||||
|
|
||||||
|
c->state = APDU_STATE_COMMAND_RECEIVED;
|
||||||
eventflag_signal (&c->openpgp_comm, EV_VERIFY_CMD_AVAILABLE);
|
eventflag_signal (&c->openpgp_comm, EV_VERIFY_CMD_AVAILABLE);
|
||||||
next_state = CCID_STATE_EXECUTE;
|
next_state = CCID_STATE_EXECUTE;
|
||||||
}
|
}
|
||||||
@@ -1452,6 +1456,7 @@ ccid_handle_data (struct ccid *c)
|
|||||||
c->a->res_apdu_data_len = 0;
|
c->a->res_apdu_data_len = 0;
|
||||||
c->a->res_apdu_data = &ccid_buffer[5];
|
c->a->res_apdu_data = &ccid_buffer[5];
|
||||||
|
|
||||||
|
c->state = APDU_STATE_COMMAND_RECEIVED;
|
||||||
eventflag_signal (&c->openpgp_comm, EV_MODIFY_CMD_AVAILABLE);
|
eventflag_signal (&c->openpgp_comm, EV_MODIFY_CMD_AVAILABLE);
|
||||||
next_state = CCID_STATE_EXECUTE;
|
next_state = CCID_STATE_EXECUTE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user