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

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Fri Jun 29 11:56:28 UTC 2012


Author: rousseau
Date: Fri Jun 29 11:56:28 2012
New Revision: 6378

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=6378
Log:
SCardTransmit(): use an exit block

goto exit; instead of a direct return rv;

This will allow to factorize exit code.

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=6378&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Fri Jun 29 11:56:28 2012
@@ -1486,21 +1486,21 @@
 	 */
 	rv = RFCheckSharing(hCard, rContext);
 	if (rv != SCARD_S_SUCCESS)
-		return rv;
+		goto exit;
 
 	/*
 	 * Make sure the reader is working properly
 	 */
 	rv = RFCheckReaderStatus(rContext);
 	if (rv != SCARD_S_SUCCESS)
-		return rv;
+		goto exit;
 
 	/*
 	 * Make sure some event has not occurred
 	 */
 	rv = RFCheckReaderEventState(rContext, hCard);
 	if (rv != SCARD_S_SUCCESS)
-		return rv;
+		goto exit;
 
 	/*
 	 * Check for some common errors
@@ -1509,7 +1509,8 @@
 	{
 		if (rContext->readerState->readerState & SCARD_ABSENT)
 		{
-			return SCARD_E_NO_SMARTCARD;
+			rv = SCARD_E_NO_SMARTCARD;
+			goto exit;
 		}
 	}
 
@@ -1519,7 +1520,8 @@
 		{
 			if (pioSendPci->dwProtocol != rContext->readerState->cardProtocol)
 			{
-				return SCARD_E_PROTO_MISMATCH;
+				rv = SCARD_E_PROTO_MISMATCH;
+				goto exit;
 			}
 		}
 	}
@@ -1584,7 +1586,7 @@
 	{
 		*pcbRecvLength = 0;
 		Log2(PCSC_LOG_ERROR, "Card not transacted: 0x%08lX", rv);
-		return rv;
+		goto exit;
 	}
 
 	/*
@@ -1593,13 +1595,16 @@
 	if (tempRxLength < dwRxLength)
 	{
 		*pcbRecvLength = 0;
-		return SCARD_E_INSUFFICIENT_BUFFER;
+		rv = SCARD_E_INSUFFICIENT_BUFFER;
+		goto exit;
 	}
 
 	/*
 	 * Successful return
 	 */
 	*pcbRecvLength = dwRxLength;
-	return SCARD_S_SUCCESS;
+
+exit:
+	return rv;
 }
 




More information about the Pcsclite-cvs-commit mailing list