Dont use invalid/bogus input value for cbAtrLen for Smartcard Status Calls, instead...
authorbjcollins <bcollins@trustedcs.com>
Fri, 18 Sep 2015 21:55:06 +0000 (16:55 -0500)
committerbjcollins <bcollins@trustedcs.com>
Fri, 18 Sep 2015 21:55:06 +0000 (16:55 -0500)
buffer space available.

channels/smartcard/client/smartcard_operations.c

index 4d582ae..3a37add 100644 (file)
@@ -888,10 +888,7 @@ static LONG smartcard_StatusA_Call(SMARTCARD_DEVICE* smartcard, SMARTCARD_OPERAT
        LPSTR mszReaderNames = NULL;
        IRP* irp = operation->irp;
 
-       if (call->cbAtrLen > 32)
-               call->cbAtrLen = 32;
-
-       ret.cbAtrLen = call->cbAtrLen;
+       ret.cbAtrLen = 32;
        ZeroMemory(ret.pbAtr, 32);
        cchReaderLen = SCARD_AUTOALLOCATE;
 
@@ -941,10 +938,7 @@ static LONG smartcard_StatusW_Call(SMARTCARD_DEVICE* smartcard, SMARTCARD_OPERAT
        LPWSTR mszReaderNames = NULL;
        IRP* irp = operation->irp;
 
-       if (call->cbAtrLen > 32)
-               call->cbAtrLen = 32;
-
-       ret.cbAtrLen = call->cbAtrLen;
+       ret.cbAtrLen = 32;
        ZeroMemory(ret.pbAtr, 32);
        cchReaderLen = SCARD_AUTOALLOCATE;