summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorwyllys <none@none>2007-04-23 17:39:53 -0700
committerwyllys <none@none>2007-04-23 17:39:53 -0700
commitb4058258308bb6a33809f15962013af85f890c36 (patch)
treeef4631b9994d351f9c03d5aecc851a7fac1cc033 /usr/src
parent9b14cf1dc76dad8f2d9a74310e0a0200af96d217 (diff)
downloadillumos-gate-b4058258308bb6a33809f15962013af85f890c36.tar.gz
6549186 OpenSSL_FindCert incorrectly tracks matched certificates
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c b/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c
index 28a331a65b..d483810090 100644
--- a/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c
+++ b/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c
@@ -1051,7 +1051,7 @@ OpenSSL_FindCert(KMF_HANDLE_T handle,
/* If load succeeds, add certdata to the list */
if (kmf_cert != NULL) {
for (i = 0; i < loaded_certs &&
- i < maxcerts; i++) {
+ n < maxcerts; i++) {
kmf_cert[n].certificate.Data =
certlist[i].Data;
kmf_cert[n].certificate.Length =
@@ -1065,7 +1065,10 @@ OpenSSL_FindCert(KMF_HANDLE_T handle,
strdup(fname);
n++;
}
- /* If maxcerts < loaded_certs, clean up */
+ /*
+ * If maxcerts < loaded_certs, clean up the
+ * certs that were not used.
+ */
for (; i < loaded_certs; i++)
KMF_FreeData(&certlist[i]);
} else {