aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-09-28 03:40:46 +0000
committerGreg Hudson <ghudson@mit.edu>2010-09-28 03:40:46 +0000
commit26e723bcdf2b4380e779f12f7bbe5a6bdc1b1121 (patch)
treeb93bab3db9f3ea0aeac17a327be55c9c9c40e31e
parentb274418c230aaae413739a47488587656ec9c91a (diff)
downloadkrb5-26e723bcdf2b4380e779f12f7bbe5a6bdc1b1121.zip
krb5-26e723bcdf2b4380e779f12f7bbe5a6bdc1b1121.tar.gz
krb5-26e723bcdf2b4380e779f12f7bbe5a6bdc1b1121.tar.bz2
Clean up hash and digest contexts in the back end to avoid refcount
leaks. git-svn-id: svn://anonsvn.mit.edu/krb5/branches/nss@24367 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/crypto/nss/hash_provider/hash_gen.c1
-rw-r--r--src/lib/crypto/nss/hmac.c3
2 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/crypto/nss/hash_provider/hash_gen.c b/src/lib/crypto/nss/hash_provider/hash_gen.c
index 98a8cc6..85cbde6 100644
--- a/src/lib/crypto/nss/hash_provider/hash_gen.c
+++ b/src/lib/crypto/nss/hash_provider/hash_gen.c
@@ -61,6 +61,7 @@ k5_nss_gen_hash(HASH_HashType hashType, const krb5_crypto_iov *data,
HASH_End(ctx, (unsigned char *)output->data,
&output->length, output->length);
+ HASH_Destroy(ctx);
return 0;
}
diff --git a/src/lib/crypto/nss/hmac.c b/src/lib/crypto/nss/hmac.c
index a909e6e..a77f3d4 100644
--- a/src/lib/crypto/nss/hmac.c
+++ b/src/lib/crypto/nss/hmac.c
@@ -151,10 +151,9 @@ krb5int_hmac(const struct krb5_hash_provider *hash, krb5_key key,
}
rv = PK11_DigestFinal(ctx, (unsigned char *) output->data, &output->length,
output->length);
- ctx = NULL;
if (rv != SECSuccess)
goto fail;
-
+ PK11_DestroyContext(ctx, PR_TRUE);
return 0;
fail:
ret = k5_nss_map_last_error();