[Pcsclite-cvs-commit] r4445 - /trunk/PCSC/src/winscard.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Thu Oct 8 08:06:02 UTC 2009


Author: rousseau
Date: Thu Oct  8 08:05:51 2009
New Revision: 4445

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4445
Log:
SCardGetAttrib(): return SCARD_E_INSUFFICIENT_BUFFER if the driver
returns IFD_ERROR_INSUFFICIENT_BUFFER

Thanks to Emmanuel Deloget for the bug report
http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0003.html

Modified:
    trunk/PCSC/src/winscard.c

Modified: trunk/PCSC/src/winscard.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard.c?rev=4445&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Thu Oct  8 08:05:51 2009
@@ -1471,13 +1471,22 @@
 		return rv;
 
 	rv = IFDGetCapabilities(rContext, dwAttrId, pcbAttrLen, pbAttr);
-	if (rv == IFD_SUCCESS)
-		return SCARD_S_SUCCESS;
-	else
-		if (rv == IFD_ERROR_TAG)
-			return SCARD_E_UNSUPPORTED_FEATURE;
-		else
-			return SCARD_E_NOT_TRANSACTED;
+	switch(rv)
+	{
+		case IFD_SUCCESS:
+			rv = SCARD_S_SUCCESS;
+			break;
+		case IFD_ERROR_TAG:
+			rv = SCARD_E_UNSUPPORTED_FEATURE;
+			break;
+		case IFD_ERROR_INSUFFICIENT_BUFFER:
+			rv = SCARD_E_INSUFFICIENT_BUFFER;
+			break;
+		default:
+			rv = SCARD_E_NOT_TRANSACTED;
+	}
+
+	return rv;
 }
 
 LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,




More information about the Pcsclite-cvs-commit mailing list