summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLauri Kenttä <lauri.kentta@gmail.com>2016-05-25 19:52:11 +0300
committerNikita Popov <nikic@php.net>2016-07-07 01:27:23 +0200
commit0259459486dd50b30b97392f6fc8085e7bba772e (patch)
tree0e76c938d19ec0b8e35230a5a65368397e7b0e43
parentc1ac081bf1bdd8abb50e9a707bd4ea4a6389b735 (diff)
downloadphp-git-0259459486dd50b30b97392f6fc8085e7bba772e.tar.gz
base64_decode: remove redundant code
case 1 is already handled in the first lines of the for loop; it would only be entered in the invalid case where the string continues past the defined length (ch != 0 but length-- == 0). case 2 and case 3 are redundant, since k >= j and later the string is truncated to j characters anyway.
-rw-r--r--ext/standard/base64.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/ext/standard/base64.c b/ext/standard/base64.c
index ea548159c6..dc3e52071b 100644
--- a/ext/standard/base64.c
+++ b/ext/standard/base64.c
@@ -136,8 +136,7 @@ PHPAPI zend_string *php_base64_decode(const unsigned char *str, size_t length) /
PHPAPI zend_string *php_base64_decode_ex(const unsigned char *str, size_t length, zend_bool strict) /* {{{ */
{
const unsigned char *current = str;
- int ch, i = 0, j = 0, k;
- /* this sucks for threaded environments */
+ int ch, i = 0, j = 0;
zend_string *result;
result = zend_string_alloc(length, 0);
@@ -197,19 +196,6 @@ PHPAPI zend_string *php_base64_decode_ex(const unsigned char *str, size_t length
i++;
}
- k = j;
- /* mop things up if we ended on a boundary */
- if (ch == base64_pad) {
- switch(i % 4) {
- case 1:
- zend_string_free(result);
- return NULL;
- case 2:
- k++;
- case 3:
- ZSTR_VAL(result)[k] = 0;
- }
- }
ZSTR_LEN(result) = j;
ZSTR_VAL(result)[ZSTR_LEN(result)] = '\0';