Overview
| Comment: | Fixed an issue where the mutex released slightly too early |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
54d3a148efd03ee6b0263c91297e2d30 |
| User & Date: | rkeene on 2016-02-16 16:06:54 |
| Other Links: | manifest | tags |
Context
|
2016-02-16
| ||
| 17:04 | Added workaround for Google's PCSC where we cannot determine the amount of space required to hold the reader list automatically check-in: 6218cc54fc user: rkeene tags: trunk | |
| 16:06 | Fixed an issue where the mutex released slightly too early check-in: 54d3a148ef user: rkeene tags: trunk | |
| 16:06 | Better handling of loss of connection to the PCSC daemon or card resetting check-in: 9f8b1347d9 user: rkeene tags: trunk | |
Changes
Modified cackey.c from [ef984b4aeb] to [3b58f20dd7].
| ︙ | ︙ | |||
5205 5206 5207 5208 5209 5210 5211 |
CACKEY_DEBUG_PRINTF("No token is present in slotID = %lu", slotID);
cackey_mutex_unlock(cackey_biglock);
return(CKR_TOKEN_NOT_PRESENT);
}
| < < < < < < < | 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 |
CACKEY_DEBUG_PRINTF("No token is present in slotID = %lu", slotID);
cackey_mutex_unlock(cackey_biglock);
return(CKR_TOKEN_NOT_PRESENT);
}
/* Determine token label from certificates */
memset(pInfo->label, ' ', sizeof(pInfo->label));
use_default_label = 1;
if (cackey_slots[slotID].label == NULL) {
pcsc_identities = cackey_read_certs(&cackey_slots[slotID], NULL, &num_certs);
if (pcsc_identities != NULL) {
|
| ︙ | ︙ | |||
5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 |
cackey_free_certs(pcsc_identities, num_certs, 1);
}
} else {
memcpy(pInfo->label, cackey_slots[slotID].label, sizeof(pInfo->label));
use_default_label = 0;
}
if (use_default_label) {
memcpy(pInfo->label, defaultLabel, sizeof(defaultLabel) - 1);
}
memset(pInfo->manufacturerID, ' ', sizeof(pInfo->manufacturerID));
memcpy(pInfo->manufacturerID, manufacturerID, sizeof(manufacturerID) - 1);
| > > > > > > > | 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 |
cackey_free_certs(pcsc_identities, num_certs, 1);
}
} else {
memcpy(pInfo->label, cackey_slots[slotID].label, sizeof(pInfo->label));
use_default_label = 0;
}
mutex_retval = cackey_mutex_unlock(cackey_biglock);
if (mutex_retval != 0) {
CACKEY_DEBUG_PRINTF("Error. Unlocking failed.");
return(CKR_GENERAL_ERROR);
}
if (use_default_label) {
memcpy(pInfo->label, defaultLabel, sizeof(defaultLabel) - 1);
}
memset(pInfo->manufacturerID, ' ', sizeof(pInfo->manufacturerID));
memcpy(pInfo->manufacturerID, manufacturerID, sizeof(manufacturerID) - 1);
|
| ︙ | ︙ |