Overview
Comment: | Removed extraneous parameter of cackey_read_dod_identities() |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | e491e4b5f94497a74a222aaef47fee472b1eaa67 |
User & Date: | rkeene on 2012-07-27 18:29:12 |
Other Links: | manifest | tags |
Context
2012-07-27
| ||
18:29 | Initialized variables we pass into PC/SC check-in: af692c90b0 user: rkeene tags: trunk | |
18:29 | Removed extraneous parameter of cackey_read_dod_identities() check-in: e491e4b5f9 user: rkeene tags: trunk | |
18:27 | Fixed bug where DoD certs were overwriting random parts of memory causing strange bugs, fixes [b9306c2b35] check-in: 3efa328414 user: rkeene tags: trunk | |
Changes
Modified cackey.c from [2007da4548] to [c41337ffcb].
3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 .... 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 .... 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 |
cackey_free_certs(identities[id_idx].pcsc_identity, 1, 1); } } free(identities); } static unsigned long cackey_read_dod_identities(struct cackey_identity *identities, unsigned long id_idx, unsigned long num_dod_certs) { unsigned long cert_idx; for (cert_idx = 0; cert_idx < num_dod_certs; cert_idx++) { identities[id_idx].pcsc_identity = NULL; identities[id_idx].attributes = cackey_get_attributes(CKO_CERTIFICATE, &extra_certs[cert_idx], 0xf000 | cert_idx, &identities[id_idx].attributes_count); id_idx++; identities[id_idx].pcsc_identity = NULL; ................................................................................ if (slot->internal) { num_ids = num_dod_certs * 3; if (num_ids != 0) { identities = malloc(num_ids * sizeof(*identities)); cackey_read_dod_identities(identities, 0, num_dod_certs); } else { identities = NULL; } *ids_found = num_ids; return(identities); ................................................................................ id_idx++; } } if (include_extra_certs) { CACKEY_DEBUG_PRINTF("Including DoD Certificates on hardware slot"); cackey_read_dod_identities(identities, id_idx, num_dod_certs); } cackey_free_certs(pcsc_identities, num_certs, 1); *ids_found = num_ids; return(identities); |
| | | | |
3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 .... 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 .... 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 |
cackey_free_certs(identities[id_idx].pcsc_identity, 1, 1); } } free(identities); } static unsigned long cackey_read_dod_identities(struct cackey_identity *identities, unsigned long num_dod_certs) { unsigned long cert_idx, id_idx = 0; for (cert_idx = 0; cert_idx < num_dod_certs; cert_idx++) { identities[id_idx].pcsc_identity = NULL; identities[id_idx].attributes = cackey_get_attributes(CKO_CERTIFICATE, &extra_certs[cert_idx], 0xf000 | cert_idx, &identities[id_idx].attributes_count); id_idx++; identities[id_idx].pcsc_identity = NULL; ................................................................................ if (slot->internal) { num_ids = num_dod_certs * 3; if (num_ids != 0) { identities = malloc(num_ids * sizeof(*identities)); cackey_read_dod_identities(identities, num_dod_certs); } else { identities = NULL; } *ids_found = num_ids; return(identities); ................................................................................ id_idx++; } } if (include_extra_certs) { CACKEY_DEBUG_PRINTF("Including DoD Certificates on hardware slot"); cackey_read_dod_identities(identities + id_idx, num_dod_certs); } cackey_free_certs(pcsc_identities, num_certs, 1); *ids_found = num_ids; return(identities); |