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;
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;
}
}
}
done:
- if (!state && ctx)
+ if (!state && ctx) {
+ PK11_Finalize(ctx);
PK11_DestroyContext(ctx, PR_TRUE);
+ }
return ret;
}
}
done:
- if (ctx)
+ if (ctx) {
+ PK11_Finalize(ctx);
PK11_DestroyContext(ctx, PR_TRUE);
+ }
if (param)
SECITEM_FreeItem(param, PR_TRUE);
return ret;
ret = k5_nss_map_last_error();
goto done;
}
+ PK11_Finalize(ctx);
PK11_DestroyContext(ctx, PR_TRUE);
ctx = NULL;
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