summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2009-01-25 18:27:39 +0000
committerIlia Alshanetsky <iliaa@php.net>2009-01-25 18:27:39 +0000
commit38969d726bf6ed1d082b85bb6547f441f25b0b07 (patch)
tree24ce13993924d9ef87928aff413dd04b158b51c7
parent49b4865adb3adae4df63625813690e75ce86941a (diff)
downloadphp-git-38969d726bf6ed1d082b85bb6547f441f25b0b07.tar.gz
MFB: Improved fix for bug #47174 & added a test
-rw-r--r--ext/standard/base64.c1
-rw-r--r--ext/standard/tests/url/bug47174.phpt18
2 files changed, 18 insertions, 1 deletions
diff --git a/ext/standard/base64.c b/ext/standard/base64.c
index b163ce4849..b4a291461d 100644
--- a/ext/standard/base64.c
+++ b/ext/standard/base64.c
@@ -158,7 +158,6 @@ PHPAPI unsigned char *php_base64_decode_ex(const unsigned char *str, int length,
efree(result);
return NULL;
}
- i++;
continue;
}
diff --git a/ext/standard/tests/url/bug47174.phpt b/ext/standard/tests/url/bug47174.phpt
new file mode 100644
index 0000000000..6d08063253
--- /dev/null
+++ b/ext/standard/tests/url/bug47174.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Bug #47174 (base64_decode() interprets pad char in mid string as terminator)
+--FILE--
+<?php
+if (base64_decode("dGVzdA==") == base64_decode("dGVzdA==CRAP")) {
+ echo "Same octect data - Signature Valid\n";
+} else {
+ echo "Invalid Signature\n";
+}
+
+$in = base64_encode("foo") . '==' . base64_encode("bar");
+var_dump($in, base64_decode($in));
+
+?>
+--EXPECT--
+Invalid Signature
+string(10) "Zm9v==YmFy"
+string(6) "foobar"