summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2004-01-23 12:07:28 +0000
committerVolker Lendecke <vlendec@samba.org>2004-01-23 12:07:28 +0000
commit72d68bb58cc8cd5d80397f037bb2d1c1ae49415c (patch)
tree70e99069c442c437655d1f9562316f4432e623f8
parentd3f269cd833c7452776008881ec1f1b695e0eabf (diff)
downloadsamba-72d68bb58cc8cd5d80397f037bb2d1c1ae49415c.tar.gz
samba-72d68bb58cc8cd5d80397f037bb2d1c1ae49415c.tar.bz2
samba-72d68bb58cc8cd5d80397f037bb2d1c1ae49415c.zip
Fix decoding of base64. We got the length wrong when the result was not
an exact multiple of 3. I also wrote a torture test and it survived some minutes of random stuff coded/decoded up to 16 MB data. But that would be a bit too embarassing to commit... :-) Volker (This used to be commit 3fda2a0432a1dc7a0d28d83e35f6329bc30378e0)
-rw-r--r--source3/lib/util_str.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index d93f39696f..822ab20628 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -1838,6 +1838,8 @@ DATA_BLOB base64_decode_data_blob(const char *s)
s++; i++;
}
+ if (*s == '=') n -= 1;
+
/* fix up length */
decoded.length = n;
return decoded;