crypt32: Use a helper function to allocate signer handles.

This commit is contained in:
Juan Lang 2007-08-20 17:48:38 -07:00 committed by Alexandre Julliard
parent 1f9d9be762
commit 07ba16c291

View file

@ -807,6 +807,28 @@ static BOOL CSignerHandles_Construct(CSignerHandles *handles,
return ret;
}
/* Allocates a CSignedMsgData's handles. Assumes its info has already been
* constructed.
*/
static BOOL CSignedMsgData_AllocateHandles(CSignedMsgData *msg_data)
{
BOOL ret = TRUE;
if (msg_data->info->cSignerInfo)
{
msg_data->signerHandles =
CryptMemAlloc(msg_data->info->cSignerInfo * sizeof(CSignerHandles));
if (msg_data->signerHandles)
memset(msg_data->signerHandles, 0,
msg_data->info->cSignerInfo * sizeof(CSignerHandles));
else
ret = FALSE;
}
else
msg_data->signerHandles = NULL;
return ret;
}
static void CSignedMsgData_CloseHandles(CSignedMsgData *msg_data)
{
DWORD i;
@ -1185,23 +1207,14 @@ static HCRYPTMSG CSignedEncodeMsg_Open(DWORD dwFlags,
ret = FALSE;
if (ret && info->cSigners)
{
msg->msg_data.signerHandles =
CryptMemAlloc(info->cSigners * sizeof(CSignerHandles));
if (msg->msg_data.signerHandles)
msg->msg_data.info->rgSignerInfo =
CryptMemAlloc(info->cSigners * sizeof(CMSG_SIGNER_INFO));
else
{
ret = FALSE;
msg->msg_data.info->rgSignerInfo = NULL;
}
msg->msg_data.info->rgSignerInfo =
CryptMemAlloc(info->cSigners * sizeof(CMSG_SIGNER_INFO));
if (msg->msg_data.info->rgSignerInfo)
{
msg->msg_data.info->cSignerInfo = info->cSigners;
memset(msg->msg_data.signerHandles, 0,
msg->msg_data.info->cSignerInfo * sizeof(CSignerHandles));
memset(msg->msg_data.info->rgSignerInfo, 0,
msg->msg_data.info->cSignerInfo * sizeof(CMSG_SIGNER_INFO));
ret = CSignedMsgData_AllocateHandles(&msg->msg_data);
for (i = 0; ret && i < msg->msg_data.info->cSignerInfo; i++)
{
ret = CSignerInfo_Construct(