crypt32: Fix output buffer handling for CRYPT_STRING_BINARY case.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Nikolay Sivov 2018-09-26 13:09:53 +03:00 committed by Alexandre Julliard
parent d18d38bc98
commit 5652a19110
1 changed files with 7 additions and 10 deletions

View File

@ -77,23 +77,20 @@ static BOOL EncodeBinaryToBinaryA(const BYTE *pbBinary,
{
BOOL ret = TRUE;
if (*pcchString < cbBinary)
if (pszString)
{
if (!pszString)
*pcchString = cbBinary;
else
if (*pcchString < cbBinary)
{
SetLastError(ERROR_INSUFFICIENT_BUFFER);
*pcchString = cbBinary;
ret = FALSE;
}
else if (cbBinary)
memcpy(pszString, pbBinary, cbBinary);
}
else
{
if (cbBinary)
memcpy(pszString, pbBinary, cbBinary);
*pcchString = cbBinary;
}
*pcchString = cbBinary;
return ret;
}