summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjulien.pierre.boogz%sun.com <devnull@localhost>2007-11-08 02:26:40 +0000
committerjulien.pierre.boogz%sun.com <devnull@localhost>2007-11-08 02:26:40 +0000
commit0a4f1b78431eb087ab1b91d205010334566e4b23 (patch)
tree78a57cafe0c4984cde30a92ce1439f1c24376023
parent58f734b06535cec37465073fd7f4eef27e25df4c (diff)
downloadnss-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.c17
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);
}