27 lines
1.4 KiB
C++
27 lines
1.4 KiB
C++
|
--- base64.cpp.orig 2017-02-01 19:29:59 UTC
|
||
|
+++ base64.cpp
|
||
|
@@ -114,6 +114,7 @@ uchar pBase64[] = {
|
||
|
char *b64decode(const char *s)
|
||
|
{
|
||
|
int l = strlen(s); // Get length of Base64 string.
|
||
|
+ const char *p; // Separator position
|
||
|
char *b; // Decoding buffer pointers.
|
||
|
uchar c = 0; // Character to decode.
|
||
|
int x = 0; // General purpose integers.
|
||
|
@@ -126,12 +127,12 @@ char *b64decode(const char *s)
|
||
|
if (l % 4) // If it's not modulo 4, then it...
|
||
|
return b64isnot(NULL); // ...can't be a Base64 string.
|
||
|
|
||
|
- if ((b = strchr(s, pPad[0])) != NULL) // Only one, two or three equal...
|
||
|
+ if ((p = strchr(s, pPad[0])) != NULL) // Only one, two or three equal...
|
||
|
{ // ...'=' signs are allowed at...
|
||
|
- if ((b - s) < (l - 3)) // ...the end of the Base64 string.
|
||
|
+ if ((p - s) < (l - 3)) // ...the end of the Base64 string.
|
||
|
return b64isnot(NULL); // Any other equal '=' signs are...
|
||
|
else // ...invalid.
|
||
|
- if (strncmp(b, (const char *) pPad + 3 - (s + l - b), s + l - b))
|
||
|
+ if (strncmp(p, (const char *) pPad + 3 - (s + l - p), s + l - p))
|
||
|
return b64isnot(NULL);
|
||
|
}
|
||
|
|