Module: wine Branch: master Commit: 5652a19110caa451f1ba0d1c8252fc278d81f7e7 URL: https://source.winehq.org/git/wine.git/?a=commit;h=5652a19110caa451f1ba0d1c8...
Author: Nikolay Sivov nsivov@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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; }