diff options
author | julien.pierre.boogz%sun.com <devnull@localhost> | 2007-11-08 02:26:40 +0000 |
---|---|---|
committer | julien.pierre.boogz%sun.com <devnull@localhost> | 2007-11-08 02:26:40 +0000 |
commit | 0a4f1b78431eb087ab1b91d205010334566e4b23 (patch) | |
tree | 78a57cafe0c4984cde30a92ce1439f1c24376023 | |
parent | 58f734b06535cec37465073fd7f4eef27e25df4c (diff) | |
download | nss-hg-0a4f1b78431eb087ab1b91d205010334566e4b23.tar.gz |
Fix for bug 401057 . crmftest crashes in crmf_copy_bitstring . Patch contributed by Nelson . r=julien,alexei
-rw-r--r-- | security/nss/lib/crmf/crmfreq.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/security/nss/lib/crmf/crmfreq.c b/security/nss/lib/crmf/crmfreq.c index 73a0548b9..36ab9d661 100644 --- a/security/nss/lib/crmf/crmfreq.c +++ b/security/nss/lib/crmf/crmfreq.c @@ -329,29 +329,28 @@ crmf_template_add_public_key(PRArenaPool *poolp, } static SECStatus -crmf_copy_bitstring (PRArenaPool *poolp, SECItem *dest, SECItem *src) +crmf_copy_bitstring (PRArenaPool *poolp, SECItem *dest, const SECItem *src) { SECStatus rv; - int origLenBits, numBytesToCopy; + SECItem byteSrc; - origLenBits = src->len; - numBytesToCopy = CRMF_BITS_TO_BYTES(origLenBits); - rv = crmf_copy_secitem(poolp, dest, src); - src->len = origLenBits; - dest->len = origLenBits; + byteSrc = *src; + byteSrc.len = CRMF_BITS_TO_BYTES(byteSrc.len); + rv = crmf_copy_secitem(poolp, dest, &byteSrc); + dest->len = src->len; return rv; } static SECStatus crmf_template_add_issuer_uid(PRArenaPool *poolp, SECItem *dest, - SECItem *issuerUID) + const SECItem *issuerUID) { return crmf_copy_bitstring (poolp, dest, issuerUID); } static SECStatus crmf_template_add_subject_uid(PRArenaPool *poolp, SECItem *dest, - SECItem *subjectUID) + const SECItem *subjectUID) { return crmf_copy_bitstring (poolp, dest, subjectUID); } |