@@ -3465,11 +3465,11 @@ } else { num_dod_certs = sizeof(extra_certs) / sizeof(extra_certs[0]); } if (slot->internal) { - num_ids = num_dod_certs; + 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); @@ -3486,11 +3486,11 @@ if (pcsc_identities != NULL) { /* Convert number of Certs to number of objects */ num_ids = (CKO_PRIVATE_KEY - CKO_CERTIFICATE + 1) * num_certs; if (include_extra_certs) { - num_ids += num_dod_certs; + num_ids += num_dod_certs * 3; } identities = malloc(num_ids * sizeof(*identities)); /* Add certificates, public keys, and private keys from the smartcard */