fa50606847
- Merge patches for FATE#314552 + pesign-fix-export-attributes.patch: fix crash when exporting the signed attributes + pesign-privkey_unneeded.diff: Don't check the private key when importing the raw signature - Add pesign-bnc801653-teardown-segfault.patch to fix crash when freeing digests (bnc801653) - Drop pesign-digestdata.diff which is no longer needed. OBS-URL: https://build.opensuse.org/request/show/151539 OBS-URL: https://build.opensuse.org/package/show/Base:System/pesign?expand=0&rev=5
52 lines
1.5 KiB
Diff
52 lines
1.5 KiB
Diff
commit ed689613e93f3121048d6c922c90aafd6bf10880
|
|
Author: Peter Jones <pjones@redhat.com>
|
|
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 <pjones@redhat.com>
|
|
|
|
---
|
|
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;
|