diff options
Diffstat (limited to 'net-p2p/bnbt/files')
-rw-r--r-- | net-p2p/bnbt/files/patch-base64.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/net-p2p/bnbt/files/patch-base64.cpp b/net-p2p/bnbt/files/patch-base64.cpp new file mode 100644 index 000000000000..51948c46fa82 --- /dev/null +++ b/net-p2p/bnbt/files/patch-base64.cpp @@ -0,0 +1,26 @@ +--- 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); + } + |