Diff

Differences From Artifact [3b58f20dd7]:

To Artifact [ebe379d38c]:


  4893   4893   
  4894   4894   			cackey_pcsc_disconnect();
  4895   4895   			cackey_pcsc_connect();
  4896   4896   
  4897   4897   			CACKEY_DEBUG_PRINTF("Trying SCardListReaders() again");
  4898   4898   			scard_listreaders_ret = SCardListReaders(*cackey_pcsc_handle, NULL, NULL, &pcsc_readers_len);
  4899   4899   		}
         4900  +
         4901  +		if (scard_listreaders_ret == SCARD_E_INSUFFICIENT_BUFFER) {
         4902  +			CACKEY_DEBUG_PRINTF("Error. SCardListReaders() returned SCARD_E_INSUFFICIENT_BUFFER, assuming this is a bug (e.g., Google PCSC) and allocating a massive amount of space to hold the reader list.");
         4903  +
         4904  +			pcsc_readers_len = 32768;
         4905  +			scard_listreaders_ret = SCARD_S_SUCCESS;
         4906  +		}
  4900   4907   
  4901   4908   		if (scard_listreaders_ret == SCARD_S_SUCCESS && pcsc_readers_len != 0) {
  4902   4909   			pcsc_readers = malloc(pcsc_readers_len);
  4903   4910   			pcsc_readers_s = pcsc_readers;
  4904   4911   
  4905   4912   			scard_listreaders_ret = SCardListReaders(*cackey_pcsc_handle, NULL, pcsc_readers, &pcsc_readers_len);
  4906   4913   			if (scard_listreaders_ret == SCARD_S_SUCCESS) {