commit ed689613e93f3121048d6c922c90aafd6bf10880 Author: Peter Jones Date: Tue Nov 27 11:37:05 2012 -0500 Hopefully make teardown_digests() work better... Freeing nss constructs continues to be weird. Signed-off-by: Peter Jones --- src/cms_common.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) --- a/src/cms_common.c +++ b/src/cms_common.c @@ -110,8 +110,6 @@ teardown_digests(cms_context *ctx) PK11_DestroyContext(digests[i].pk11ctx, PR_TRUE); } if (digests[i].pe_digest) { - free_poison(digests[i].pe_digest->data, - digests[i].pe_digest->len); /* XXX sure seems like we should be freeing it here, * but that's segfaulting, and we know it'll get * cleaned up with PORT_FreeArena a couple of lines @@ -120,7 +118,7 @@ teardown_digests(cms_context *ctx) digests[i].pe_digest = NULL; } } - free(digests); + PORT_Free(digests); ctx->digests = NULL; } @@ -184,7 +182,6 @@ cms_context_fini(cms_context *cms) memset(&cms->newsig, '\0', sizeof (cms->newsig)); } - teardown_digests(cms); cms->selected_digest = -1; if (cms->ci_digest) { @@ -708,7 +705,7 @@ generate_digest_begin(cms_context *cms) if (cms->digests) { digests = cms->digests; } else { - digests = calloc(n_digest_params, sizeof (*digests)); + digests = PORT_ZAlloc(n_digest_params * sizeof (*digests)); if (!digests) { cms->log(cms, LOG_ERR, "cannot allocate memory: %m"); return -1;