aboutsummaryrefslogtreecommitdiffstats
path: root/net-p2p/bnbt/files
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/bnbt/files')
-rw-r--r--net-p2p/bnbt/files/patch-base64.cpp26
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);
+ }
+