mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
base64_decode: remove redundant check
If length == 0 || *current != '=' is false, the for loop will always end up in this same point, until the if statement becomes true. Thus, the if statement is not needed.
This commit is contained in:
parent
c65de8ac13
commit
ef6f163161
1 changed files with 6 additions and 5 deletions
|
@ -145,12 +145,13 @@ PHPAPI zend_string *php_base64_decode_ex(const unsigned char *str, size_t length
|
|||
/* run through the whole string, converting as we go */
|
||||
while (length-- > 0 && (ch = *current++) != '\0') {
|
||||
if (ch == base64_pad) {
|
||||
/* fail if the padding character is second in a group (like V===) */
|
||||
/* FIXME: why do we still allow invalid padding in other places in the middle of the string? */
|
||||
if (i % 4 == 1) {
|
||||
if (length == 0 || *current != '=') {
|
||||
zend_string_free(result);
|
||||
return NULL;
|
||||
}
|
||||
} else if (length > 0 && *current != '=' && strict) {
|
||||
zend_string_free(result);
|
||||
return NULL;
|
||||
}
|
||||
if (length > 0 && *current != '=' && strict) {
|
||||
while (--length > 0 && isspace(*++current)) {
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue