From 539415fa8edcae347de5afee9c8fb69b1acde578 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Tue, 18 Sep 2007 09:20:17 -0700 Subject: [PATCH] Pass length rather than entire message to CRYPT_EncodeContentLength --- dlls/crypt32/msg.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c index 40d8390..baa6a29 100644 --- a/dlls/crypt32/msg.c +++ b/dlls/crypt32/msg.c @@ -113,7 +113,7 @@ static WINAPI BOOL CRYPT_EncodeContentLe LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) { - const CDataEncodeMsg *msg = (const CDataEncodeMsg *)pvStructInfo; + DWORD dataLen = *(DWORD *)pvStructInfo; DWORD lenBytes; BOOL ret = TRUE; @@ -121,9 +121,9 @@ static WINAPI BOOL CRYPT_EncodeContentLe * the message isn't available yet. The caller will use the length * reported here to encode its length. */ - CRYPT_EncodeLen(msg->base.stream_info.cbContent, NULL, &lenBytes); + CRYPT_EncodeLen(dataLen, NULL, &lenBytes); if (!pbEncoded) - *pcbEncoded = 1 + lenBytes + msg->base.stream_info.cbContent; + *pcbEncoded = 1 + lenBytes + dataLen; else { if ((ret = CRYPT_EncodeEnsureSpace(dwFlags, pEncodePara, pbEncoded, @@ -132,7 +132,7 @@ static WINAPI BOOL CRYPT_EncodeContentLe if (dwFlags & CRYPT_ENCODE_ALLOC_FLAG) pbEncoded = *(BYTE **)pbEncoded; *pbEncoded++ = ASN_OCTETSTRING; - CRYPT_EncodeLen(msg->base.stream_info.cbContent, pbEncoded, + CRYPT_EncodeLen(dataLen, pbEncoded, &lenBytes); } } @@ -153,8 +153,8 @@ static BOOL CRYPT_EncodeDataContentInfoH } else { - struct AsnConstructedItem constructed = { 0, msg, - CRYPT_EncodeContentLength }; + struct AsnConstructedItem constructed = { 0, + &msg->base.stream_info.cbContent, CRYPT_EncodeContentLength }; struct AsnEncodeSequenceItem items[2] = { { szOID_RSA_data, CRYPT_AsnEncodeOid, 0 }, { &constructed, CRYPT_AsnEncodeConstructed, 0 }, -- 1.4.1