com php-src: Merge branch 'PHP-5.5' into PHP-7.0.5: ext/phar/phar.c ext/standard/url.c

From: Date: Tue, 29 Mar 2016 06:55:05 +0000
Subject: com php-src: Merge branch 'PHP-5.5' into PHP-7.0.5: ext/phar/phar.c ext/standard/url.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-91512@lists.php.net to get a copy of this message
Commit: 67fbb0631109bf0dd82986a93838de0907a86869 Author: Stanislav Malyshev <stas@php.net> Mon, 28 Mar 2016 23:55:05 -0700 Parents: 57d170aae092a799d0fe486868e10f41667d5b40 9c19a08b9daed6bae3071dd25742f59a59618823 Branches: PHP-7.0.5 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=67fbb0631109bf0dd82986a93838de0907a86869 Log: Merge branch 'PHP-5.5' into PHP-7.0.5 * PHP-5.5: Fixed bug #71704 php_snmp_error() Format String Vulnerability Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut Fix bug #71798 - Integer Overflow in php_raw_url_encode Fix bug #71860: Require valid paths for phar filenames Going for 5.5.34 Conflicts: configure.in ext/phar/phar_object.c ext/phar/tests/badparameters.phpt ext/phar/tests/create_path_error.phpt ext/phar/tests/pharfileinfo_construct.phpt ext/snmp/snmp.c ext/standard/url.c main/php_version.h Bugs: https://bugs.php.net/71704 https://bugs.php.net/71906 https://bugs.php.net/71798 https://bugs.php.net/71860 Changed paths: MM ext/phar/phar.c MM ext/standard/url.c Diff: diff --cc ext/phar/phar.c index 08f480d,17b0aff..860f513 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@@ -2194,12 -2259,12 +2194,16 @@@ int phar_split_fname(const char *filena #ifdef PHP_WIN32 char *save; #endif - int ext_len, free_filename = 0; + int ext_len; + + if (CHECK_NULL_PATH(filename, filename_len)) { + return FAILURE; + } + if (CHECK_NULL_PATH(filename, filename_len)) { + return FAILURE; + } + if (!strncasecmp(filename, "phar://", 7)) { filename += 7; filename_len -= 7; diff --cc ext/standard/url.c index 0138e42,27a216a..b7fd188 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@@ -606,27 -597,27 +606,27 @@@ PHPAPI size_t php_url_decode(char *str /* {{{ php_raw_url_encode */ -PHPAPI char *php_raw_url_encode(char const *s, int len, int *new_length) +PHPAPI zend_string *php_raw_url_encode(char const *s, size_t len) { - register int x, y; + register size_t x, y; - unsigned char *str; + zend_string *str; - str = (unsigned char *) safe_emalloc(3, len, 1); + str = zend_string_alloc(3 * len, 0); for (x = 0, y = 0; len--; x++, y++) { - str[y] = (unsigned char) s[x]; + ZSTR_VAL(str)[y] = (unsigned char) s[x]; #ifndef CHARSET_EBCDIC - if ((str[y] < '0' && str[y] != '-' && str[y] != '.') || - (str[y] < 'A' && str[y] > '9') || - (str[y] > 'Z' && str[y] < 'a' && str[y] != '_') || - (str[y] > 'z' && str[y] != '~')) { - str[y++] = '%'; - str[y++] = hexchars[(unsigned char) s[x] >> 4]; - str[y] = hexchars[(unsigned char) s[x] & 15]; + if ((ZSTR_VAL(str)[y] < '0' && ZSTR_VAL(str)[y] != '-' && ZSTR_VAL(str)[y] != '.') || + (ZSTR_VAL(str)[y] < 'A' && ZSTR_VAL(str)[y] > '9') || + (ZSTR_VAL(str)[y] > 'Z' && ZSTR_VAL(str)[y] < 'a' && ZSTR_VAL(str)[y] != '_') || + (ZSTR_VAL(str)[y] > 'z' && ZSTR_VAL(str)[y] != '~')) { + ZSTR_VAL(str)[y++] = '%'; + ZSTR_VAL(str)[y++] = hexchars[(unsigned char) s[x] >> 4]; + ZSTR_VAL(str)[y] = hexchars[(unsigned char) s[x] & 15]; #else /*CHARSET_EBCDIC*/ - if (!isalnum(str[y]) && strchr("_-.~", str[y]) != NULL) { - str[y++] = '%'; - str[y++] = hexchars[os_toascii[(unsigned char) s[x]] >> 4]; - str[y] = hexchars[os_toascii[(unsigned char) s[x]] & 15]; + if (!isalnum(ZSTR_VAL(str)[y]) && strchr("_-.~", ZSTR_VAL(str)[y]) != NULL) { + ZSTR_VAL(str)[y++] = '%'; + ZSTR_VAL(str)[y++] = hexchars[os_toascii[(unsigned char) s[x]] >> 4]; + ZSTR_VAL(str)[y] = hexchars[os_toascii[(unsigned char) s[x]] & 15]; #endif /*CHARSET_EBCDIC*/ } }

« previous php.cvs (#91512) next »