diff options
-rw-r--r-- | mail/evolution-data-server/distinfo | 3 | ||||
-rw-r--r-- | mail/evolution-data-server/patches/patch-bd | 44 |
2 files changed, 46 insertions, 1 deletions
diff --git a/mail/evolution-data-server/distinfo b/mail/evolution-data-server/distinfo index 2c362729db2..3e4f40a32d3 100644 --- a/mail/evolution-data-server/distinfo +++ b/mail/evolution-data-server/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.56 2009/02/16 23:31:38 drochner Exp $ +$NetBSD: distinfo,v 1.57 2009/02/17 11:01:43 drochner Exp $ SHA1 (evolution-data-server-2.24.4.1.tar.bz2) = 95ec53d366d82d51aea8e253b4360cb0db9ba984 RMD160 (evolution-data-server-2.24.4.1.tar.bz2) = d08d08e85a9da85f24fee845bc98de62bddfb717 @@ -14,3 +14,4 @@ SHA1 (patch-at) = 32bb4f9de33a3799ad7a1a00dd072b38a800185c SHA1 (patch-ba) = d90f9aa715725780d01b71e3464d20c9575d2db4 SHA1 (patch-bb) = 915106112ec4606dc6b7626c6d81ccce1cab0d57 SHA1 (patch-bc) = 6a1f6a549325f1067e4ff85c845b81e024955411 +SHA1 (patch-bd) = b00c9886bded9775020dfba5bb8c3bd8d009341b diff --git a/mail/evolution-data-server/patches/patch-bd b/mail/evolution-data-server/patches/patch-bd new file mode 100644 index 00000000000..0539063f8e7 --- /dev/null +++ b/mail/evolution-data-server/patches/patch-bd @@ -0,0 +1,44 @@ +$NetBSD: patch-bd,v 1.1 2009/02/17 11:01:43 drochner Exp $ + +--- camel/camel-smime-context.c.orig 2008-10-13 10:07:53.000000000 +0200 ++++ camel/camel-smime-context.c +@@ -40,6 +40,7 @@ + #include <smime.h> + #include <pkcs11t.h> + #include <pk11func.h> ++#include <secoid.h> + + #include <errno.h> + +@@ -545,6 +546,11 @@ sm_verify_cmsg(CamelCipherContext *conte + + /* need to build digests of the content */ + if (!NSS_CMSSignedData_HasDigests(sigd)) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); ++ goto fail; ++ } else { ++ int which_digest; ++ + if (extstream == NULL) { + camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Digests missing from enveloped data")); + goto fail; +@@ -573,9 +579,16 @@ sm_verify_cmsg(CamelCipherContext *conte + goto fail; + } + +- if (NSS_CMSSignedData_SetDigests(sigd, digestalgs, digests) != SECSuccess) { +- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); +- goto fail; ++ for (which_digest = 0; digests[which_digest] != NULL; which_digest++) { ++ SECOidData *digest_alg = SECOID_FindOID(&digestalgs[which_digest]->algorithm); ++ if (digest_alg == NULL) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); ++ goto fail; ++ } ++ if (NSS_CMSSignedData_SetDigestValue(sigd, digest_alg->offset, digests[which_digest]) != SECSuccess) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); ++ goto fail; ++ } + } + + PORT_FreeArena(poolp, PR_FALSE); |