]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Follow-up to r24365: call both PK11_Finalize and PK11_DestroyContext
authorGreg Hudson <ghudson@mit.edu>
Thu, 30 Sep 2010 03:40:17 +0000 (03:40 +0000)
committerGreg Hudson <ghudson@mit.edu>
Thu, 30 Sep 2010 03:40:17 +0000 (03:40 +0000)
to clean up crypto contexts.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/nss@24384 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/crypto/nss/enc_provider/enc_gen.c

index 92d30b049180b9abc569b67ed5a90fcd477d65e7..4b1b03886de212044f373d326984725b8804e59f 100644 (file)
@@ -233,8 +233,10 @@ k5_nss_gen_block_iov(krb5_key krb_key, CK_MECHANISM_TYPE mech,
         memcpy(ivec->data, lastptr, blocksize);
     }
 done:
-    if (ctx)
+    if (ctx) {
+        PK11_Finalize(ctx);
         PK11_DestroyContext(ctx, PR_TRUE);
+    }
     if (param)
         SECITEM_FreeItem(param, PR_TRUE);
     return ret;
@@ -261,8 +263,10 @@ k5_nss_stream_free_state(krb5_data *state)
     struct stream_state *sstate = (struct stream_state *) state->data;
 
     /* Clean up the OpenSSL context if it was initialized. */
-    if (sstate && sstate->loopback == sstate)
+    if (sstate && sstate->loopback == sstate) {
+        PK11_Finalize(sstate->ctx);
         PK11_DestroyContext(sstate->ctx, PR_TRUE);
+    }
     free(sstate);
     return 0;
 }
@@ -321,8 +325,10 @@ k5_nss_gen_stream_iov(krb5_key krb_key, krb5_data *state,
         }
     }
 done:
-    if (!state && ctx)
+    if (!state && ctx) {
+        PK11_Finalize(ctx);
         PK11_DestroyContext(ctx, PR_TRUE);
+    }
     return ret;
 }
 
@@ -510,8 +516,10 @@ k5_nss_gen_cts_iov(krb5_key krb_key, CK_MECHANISM_TYPE mech,
     }
 
 done:
-    if (ctx)
+    if (ctx) {
+        PK11_Finalize(ctx);
         PK11_DestroyContext(ctx, PR_TRUE);
+    }
     if (param)
         SECITEM_FreeItem(param, PR_TRUE);
     return ret;
@@ -624,6 +632,7 @@ k5_nss_gen_import(krb5_key krb_key, CK_MECHANISM_TYPE mech,
         ret = k5_nss_map_last_error();
         goto done;
     }
+    PK11_Finalize(ctx);
     PK11_DestroyContext(ctx, PR_TRUE);
     ctx = NULL;
 
@@ -645,8 +654,10 @@ done:
     if (slot)
         PK11_FreeSlot(slot);
 #ifdef FAKE_FIPS
-    if (ctx)
+    if (ctx) {
+        PK11_Finalize(ctx);
         PK11_DestroyContext(ctx, PR_TRUE);
+    }
     if (wrapping_key)
         PK11_FreeSymKey(wrapping_key);
 #endif