[Spice-devel] [PATCH xf86-video-qxl 1/2] Support IFD_RESET, print a diagnostic for unknown power sequences.
Jeremy White
jwhite at codeweavers.com
Fri Mar 13 09:28:19 PDT 2015
Also add a message for apdus that come in while a reader is inactive.
Remove an obviously unnecessary if stanza.
Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
src/spiceccid/spiceccid.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/spiceccid/spiceccid.c b/src/spiceccid/spiceccid.c
index 9f630d2..80683c0 100644
--- a/src/spiceccid/spiceccid.c
+++ b/src/spiceccid/spiceccid.c
@@ -191,7 +191,7 @@ static void process_reader_remove(smartcard_ccid_t *ccid, VSCMsgHeader *h)
static void process_atr(smartcard_ccid_t *ccid, VSCMsgHeader *h, char *data)
{
ccid->atr_len = h->length;
- if (h->length > 0 && h->length > sizeof(ccid->atr)) {
+ if (h->length > sizeof(ccid->atr)) {
fprintf(stderr, "Supplied ATR of length %d exceeds %d maximum\n",
h->length, sizeof(ccid->atr));
send_reply(ccid, VSC_GENERAL_ERROR);
@@ -208,6 +208,8 @@ static void process_apdu(smartcard_ccid_t *ccid, VSCMsgHeader *h, char *data)
{
if (ccid->state & STATE_READER_ADDED)
push_apdu(ccid, data, h->length);
+ else
+ fprintf(stderr, "apdu of length %d discarded; inactive reader\n", h->length);
}
static void process_card_remove(smartcard_ccid_t *ccid, VSCMsgHeader *h)
@@ -398,7 +400,7 @@ RESPONSECODE IFDHPowerICC(DWORD Lun, DWORD Action, PUCHAR Atr, PDWORD AtrLength)
for (i = 0; i < MAX_LUNS; i++)
if (luns[i].fd != -1 && luns[i].lun == Lun)
- if (Action == IFD_POWER_UP) {
+ if (Action == IFD_POWER_UP || Action == IFD_RESET) {
if (*AtrLength >= luns[i].atr_len) {
memcpy(Atr, luns[i].atr, luns[i].atr_len);
*AtrLength = luns[i].atr_len;
@@ -407,6 +409,7 @@ RESPONSECODE IFDHPowerICC(DWORD Lun, DWORD Action, PUCHAR Atr, PDWORD AtrLength)
return IFD_SUCCESS;
}
+ fprintf(stderr, "spiceccid %s unsupported: Lun %ld, Action %ld\n", __FUNCTION__, Lun, Action);
return IFD_ERROR_NOT_SUPPORTED;
}
--
1.7.10.4
More information about the Spice-devel
mailing list