crypt32: Use an empty string as a separator when no separator is desired to avoid special cases for NULL.
diff --git a/dlls/crypt32/base64.c b/dlls/crypt32/base64.c
index 2a91372..2996ba3 100644
--- a/dlls/crypt32/base64.c
+++ b/dlls/crypt32/base64.c
@@ -99,8 +99,7 @@
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
needed = bytes + pad_bytes + 1;
- if (sep)
- needed += (needed / 64 + 1) * strlen(sep);
+ needed += (needed / 64 + 1) * strlen(sep);
if (needed > *out_len)
{
@@ -117,7 +116,7 @@
i = 0;
while (div > 0)
{
- if (sep && i && i % 64 == 0)
+ if (i && i % 64 == 0)
{
strcpy(ptr, sep);
ptr += strlen(sep);
@@ -163,8 +162,7 @@
*ptr++ = '=';
break;
}
- if (sep)
- strcpy(ptr, sep);
+ strcpy(ptr, sep);
return ERROR_SUCCESS;
}
@@ -180,7 +178,7 @@
if (dwFlags & CRYPT_STRING_NOCR)
sep = lf;
else if (dwFlags & CRYPT_STRING_NOCRLF)
- sep = NULL;
+ sep = "";
else
sep = crlf;
switch (dwFlags & 0x0fffffff)
@@ -217,11 +215,8 @@
{
strcpy(ptr, header);
ptr += strlen(ptr);
- if (sep)
- {
- strcpy(ptr, sep);
- ptr += strlen(sep);
- }
+ strcpy(ptr, sep);
+ ptr += strlen(sep);
}
encodeBase64A(pbBinary, cbBinary, sep, ptr, &size);
ptr += size - 1;
@@ -229,11 +224,8 @@
{
strcpy(ptr, trailer);
ptr += strlen(ptr);
- if (sep)
- {
- strcpy(ptr, sep);
- ptr += strlen(sep);
- }
+ strcpy(ptr, sep);
+ ptr += strlen(sep);
}
*pcchString = charsNeeded - 1;
}
@@ -302,8 +294,7 @@
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
needed = bytes + pad_bytes + 1;
- if (sep)
- needed += (needed / 64 + 1) * strlenW(sep);
+ needed += (needed / 64 + 1) * strlenW(sep);
if (needed > *out_len)
{
@@ -320,7 +311,7 @@
i = 0;
while (div > 0)
{
- if (sep && i && i % 64 == 0)
+ if (i && i % 64 == 0)
{
strcpyW(ptr, sep);
ptr += strlenW(sep);
@@ -366,8 +357,7 @@
*ptr++ = '=';
break;
}
- if (sep)
- strcpyW(ptr, sep);
+ strcpyW(ptr, sep);
return ERROR_SUCCESS;
}
@@ -375,7 +365,7 @@
static BOOL BinaryToBase64W(const BYTE *pbBinary,
DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
{
- static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 };
+ static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 }, empty = {0};
BOOL ret = TRUE;
LPCWSTR header = NULL, trailer = NULL, sep;
DWORD charsNeeded;
@@ -383,7 +373,7 @@
if (dwFlags & CRYPT_STRING_NOCR)
sep = lf;
else if (dwFlags & CRYPT_STRING_NOCRLF)
- sep = NULL;
+ sep = empty;
else
sep = crlf;
switch (dwFlags & 0x0fffffff)
@@ -420,11 +410,8 @@
{
strcpyW(ptr, header);
ptr += strlenW(ptr);
- if (sep)
- {
- strcpyW(ptr, sep);
- ptr += strlenW(sep);
- }
+ strcpyW(ptr, sep);
+ ptr += strlenW(sep);
}
encodeBase64W(pbBinary, cbBinary, sep, ptr, &size);
ptr += size - 1;
@@ -432,11 +419,8 @@
{
strcpyW(ptr, trailer);
ptr += strlenW(ptr);
- if (sep)
- {
- strcpyW(ptr, sep);
- ptr += strlenW(sep);
- }
+ strcpyW(ptr, sep);
+ ptr += strlenW(sep);
}
*pcchString = charsNeeded - 1;
}