Module: wine Branch: master Commit: 5652a19110caa451f1ba0d1c8252fc278d81f7e7 URL: https://source.winehq.org/git/wine.git/?a=commit;h=5652a19110caa451f1ba0d1c8... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Sep 26 13:09:53 2018 +0300 crypt32: Fix output buffer handling for CRYPT_STRING_BINARY case. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/crypt32/base64.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/dlls/crypt32/base64.c b/dlls/crypt32/base64.c index e25e4c1..5caab97 100644 --- a/dlls/crypt32/base64.c +++ b/dlls/crypt32/base64.c @@ -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) + else if (cbBinary) memcpy(pszString, pbBinary, cbBinary); - *pcchString = cbBinary; } + else + + *pcchString = cbBinary; + return ret; }