[Pcsclite-cvs-commit] r5304 - in /trunk/PCSC/src: pcsc-wirecheck-gen.c winscard.c winscard_clnt.c winscard_msg.h winscard_svc.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Tue Oct 12 11:40:22 UTC 2010
Author: rousseau
Date: Tue Oct 12 11:40:20 2010
New Revision: 5304
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5304
Log:
A large part of SCardStatus() is done on the client side using
readerStates[]. So remove a few lines of dead code on the server side.
Modified:
trunk/PCSC/src/pcsc-wirecheck-gen.c
trunk/PCSC/src/winscard.c
trunk/PCSC/src/winscard_clnt.c
trunk/PCSC/src/winscard_msg.h
trunk/PCSC/src/winscard_svc.c
Modified: trunk/PCSC/src/pcsc-wirecheck-gen.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/pcsc-wirecheck-gen.c?rev=5304&op=diff
==============================================================================
--- trunk/PCSC/src/pcsc-wirecheck-gen.c (original)
+++ trunk/PCSC/src/pcsc-wirecheck-gen.c Tue Oct 12 11:40:20 2010
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2007
* Jacob Berkman
- * Copyright (C) 2007-2009
+ * Copyright (C) 2007-2010
* Ludovic Rousseau <ludovic.rousseau at free.fr>
*/
@@ -186,12 +186,6 @@
BLANK_LINE ();
CHECK_STRUCT (status_struct);
CHECK_MEMBER (status_struct, hCard);
- CHECK_MEMBER (status_struct, mszReaderNames);
- CHECK_MEMBER (status_struct, pcchReaderLen);
- CHECK_MEMBER (status_struct, dwState);
- CHECK_MEMBER (status_struct, dwProtocol);
- CHECK_MEMBER (status_struct, pbAtr);
- CHECK_MEMBER (status_struct, pcbAtrLen);
CHECK_MEMBER (status_struct, rv);
BLANK_LINE ();
Modified: trunk/PCSC/src/winscard.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard.c?rev=5304&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Tue Oct 12 11:40:20 2010
@@ -1191,8 +1191,15 @@
{
LONG rv;
READER_CONTEXT * rContext = NULL;
- char *readerName;
- unsigned int readerLen;
+
+ /* These parameters are not used by the client
+ * Client side code uses readerStates[] instead */
+ (void)mszReaderNames;
+ (void)pcchReaderLen;
+ (void)pdwState;
+ (void)pdwProtocol;
+ (void)pbAtr;
+ (void)pcbAtrLen;
if (hCard == 0)
return SCARD_E_INVALID_HANDLE;
@@ -1237,79 +1244,6 @@
rv = RFCheckReaderStatus(rContext);
if (rv != SCARD_S_SUCCESS)
return rv;
-
- readerName = rContext->readerState->readerName;
- readerLen = strlen(readerName);
-
- if (mszReaderNames)
- { /* want reader name */
- if (pcchReaderLen)
- { /* & present reader name length */
- *pcchReaderLen = readerLen;
- if (*pcchReaderLen >= readerLen)
- { /* & enough room */
- strncpy(mszReaderNames, readerName, MAX_READERNAME);
- }
- else
- { /* may report only reader name len */
- rv = SCARD_E_INSUFFICIENT_BUFFER;
- }
- }
- else
- { /* present buf & no buflen */
- return SCARD_E_INVALID_PARAMETER;
- }
- }
- else
- {
- if (pcchReaderLen)
- { /* want reader len only */
- *pcchReaderLen = readerLen;
- }
- else
- {
- /* nothing todo */
- }
- }
-
- if (pdwState)
- *pdwState = rContext->readerState->readerState;
-
- if (pdwProtocol)
- *pdwProtocol = rContext->readerState->cardProtocol;
-
- if (pbAtr)
- { /* want ATR */
- if (pcbAtrLen)
- { /* & present ATR length */
- if (*pcbAtrLen >= rContext->readerState->cardAtrLength)
- { /* & enough room */
- *pcbAtrLen = rContext->readerState->cardAtrLength;
- memcpy(pbAtr, rContext->readerState->cardAtr,
- rContext->readerState->cardAtrLength);
- }
- else
- { /* may report only ATR len */
- *pcbAtrLen = rContext->readerState->cardAtrLength;
- rv = SCARD_E_INSUFFICIENT_BUFFER;
- }
- }
- else
- { /* present buf & no buflen */
- return SCARD_E_INVALID_PARAMETER;
- }
- }
- else
- {
- if (pcbAtrLen)
- { /* want ATR len only */
- *pcbAtrLen = rContext->readerState->cardAtrLength;
- }
- else
- {
- /* nothing todo */
- }
- }
return rv;
}
Modified: trunk/PCSC/src/winscard_clnt.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_clnt.c?rev=5304&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_clnt.c (original)
+++ trunk/PCSC/src/winscard_clnt.c Tue Oct 12 11:40:20 2010
@@ -1648,10 +1648,6 @@
/* initialise the structure */
memset(&scStatusStruct, 0, sizeof(scStatusStruct));
scStatusStruct.hCard = hCard;
-
- /* those sizes need to be initialised */
- scStatusStruct.pcchReaderLen = sizeof(scStatusStruct.mszReaderNames);
- scStatusStruct.pcbAtrLen = sizeof(scStatusStruct.pbAtr);
rv = MessageSendWithHeader(SCARD_STATUS, currentContextMap->dwClientID,
sizeof(scStatusStruct),
Modified: trunk/PCSC/src/winscard_msg.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_msg.h?rev=5304&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_msg.h (original)
+++ trunk/PCSC/src/winscard_msg.h Tue Oct 12 11:40:20 2010
@@ -213,12 +213,6 @@
struct status_struct
{
int32_t hCard;
- char mszReaderNames[MAX_READERNAME];
- uint32_t pcchReaderLen;
- uint32_t dwState;
- uint32_t dwProtocol;
- uint8_t pbAtr[MAX_ATR_SIZE];
- uint32_t pcbAtrLen;
uint32_t rv;
};
Modified: trunk/PCSC/src/winscard_svc.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.c?rev=5304&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.c (original)
+++ trunk/PCSC/src/winscard_svc.c Tue Oct 12 11:40:20 2010
@@ -548,38 +548,15 @@
case SCARD_STATUS:
{
struct status_struct stStr;
- DWORD cchReaderLen;
- DWORD dwState;
- DWORD dwProtocol;
- DWORD cbAtrLen;
READ_BODY(stStr)
if (MSGCheckHandleAssociation(stStr.hCard, threadContext))
goto exit;
- cchReaderLen = stStr.pcchReaderLen;
- dwState = stStr.dwState;
- dwProtocol = stStr.dwProtocol;
- cbAtrLen = stStr.pcbAtrLen;
-
- /* avoids buffer overflow */
- if ((cchReaderLen > sizeof(stStr.mszReaderNames))
- || (cbAtrLen > sizeof(stStr.pbAtr)))
- {
- stStr.rv = SCARD_E_INSUFFICIENT_BUFFER ;
- }
- else
- {
- stStr.rv = SCardStatus(stStr.hCard,
- stStr.mszReaderNames, &cchReaderLen, &dwState,
- &dwProtocol, stStr.pbAtr, &cbAtrLen);
-
- stStr.pcchReaderLen = cchReaderLen;
- stStr.dwState = dwState;
- stStr.dwProtocol = dwProtocol;
- stStr.pcbAtrLen = cbAtrLen;
- }
+ /* only hCard and return value are used by the client */
+ stStr.rv = SCardStatus(stStr.hCard, NULL, NULL, NULL,
+ NULL, 0, NULL);
WRITE_BODY(stStr)
}
More information about the Pcsclite-cvs-commit
mailing list