Status_Call* call = operation->call;
DWORD cbAtrLen;
- if (call->cbAtrLen > 32)
- call->cbAtrLen = 32;
+ /**
+ * [MS-RDPESC]
+ * According to 2.2.2.18 Status_Call cbAtrLen is unused an must be ignored upon receipt.
+ */
+ cbAtrLen = call->cbAtrLen = 32;
+
+ call->cchReaderLen;
if (call->fmszReaderNamesIsNULL)
cchReaderLen = 0;
else
cchReaderLen = SCARD_AUTOALLOCATE;
- cbAtrLen = call->cbAtrLen;
ZeroMemory(ret.pbAtr, 32);
status = ret.ReturnCode = SCardStatusW(operation->hCard,
call->fmszReaderNamesIsNULL ? NULL : (LPWSTR) &mszReaderNames,
ret.cBytes = cchReaderLen;
#endif
- if (call->cbAtrLen)
- ret.cbAtrLen = cbAtrLen;
+ ret.cbAtrLen = cbAtrLen;
}
smartcard_trace_status_return(smartcard, &ret, TRUE);