Blame SOURCES/fix-channels-smartcard-fix-StatusW_Call.patch

bd57e3
From a311075202865d22b87ec2ea8d1e32fa11868012 Mon Sep 17 00:00:00 2001
bd57e3
From: Bernhard Miklautz <bernhard.miklautz@thincast.com>
bd57e3
Date: Wed, 10 Jul 2019 18:36:34 +0200
bd57e3
Subject: [PATCH] fix [channels/smartcard]: fix StatusW_Call
bd57e3
bd57e3
According to 2.2.2.18 Status_Call cbAtrLen is unused an must be ignored
bd57e3
upon receipt.
bd57e3
---
bd57e3
 channels/smartcard/client/smartcard_operations.c | 13 ++++++++-----
bd57e3
 1 file changed, 8 insertions(+), 5 deletions(-)
bd57e3
bd57e3
diff --git a/channels/smartcard/client/smartcard_operations.c b/channels/smartcard/client/smartcard_operations.c
bd57e3
index c4bf65d38..e3d848171 100644
bd57e3
--- a/channels/smartcard/client/smartcard_operations.c
bd57e3
+++ b/channels/smartcard/client/smartcard_operations.c
bd57e3
@@ -1209,15 +1209,19 @@ static LONG smartcard_StatusW_Call(SMARTCARD_DEVICE* smartcard, SMARTCARD_OPERAT
bd57e3
 	Status_Call* call = operation->call;
bd57e3
 	DWORD cbAtrLen;
bd57e3
 
bd57e3
-	if (call->cbAtrLen > 32)
bd57e3
-		call->cbAtrLen = 32;
bd57e3
+	/**
bd57e3
+	 * [MS-RDPESC]
bd57e3
+	 * According to 2.2.2.18 Status_Call cbAtrLen is unused an must be ignored upon receipt.
bd57e3
+	 */
bd57e3
+	cbAtrLen = call->cbAtrLen = 32;
bd57e3
+
bd57e3
+	call->cchReaderLen;
bd57e3
 
bd57e3
 	if (call->fmszReaderNamesIsNULL)
bd57e3
 		cchReaderLen = 0;
bd57e3
 	else
bd57e3
 		cchReaderLen = SCARD_AUTOALLOCATE;
bd57e3
 
bd57e3
-	cbAtrLen = call->cbAtrLen;
bd57e3
 	ZeroMemory(ret.pbAtr, 32);
bd57e3
 	status = ret.ReturnCode = SCardStatusW(operation->hCard,
bd57e3
 	                                       call->fmszReaderNamesIsNULL ? NULL : (LPWSTR) &mszReaderNames,
bd57e3
@@ -1236,8 +1240,7 @@ static LONG smartcard_StatusW_Call(SMARTCARD_DEVICE* smartcard, SMARTCARD_OPERAT
bd57e3
 		ret.cBytes = cchReaderLen;
bd57e3
 #endif
bd57e3
 
bd57e3
-		if (call->cbAtrLen)
bd57e3
-			ret.cbAtrLen = cbAtrLen;
bd57e3
+		ret.cbAtrLen = cbAtrLen;
bd57e3
 	}
bd57e3
 
bd57e3
 	smartcard_trace_status_return(smartcard, &ret, TRUE);
bd57e3
-- 
bd57e3
2.26.0
bd57e3