cvs: php-src(PHP_5_2) / NEWS /ext/filter logical_filters.c /ext/filter/tests 015.phpt 033.phpt

From: Date: Wed, 20 Dec 2006 19:20:01 +0000
Subject: cvs: php-src(PHP_5_2) / NEWS /ext/filter logical_filters.c /ext/filter/tests 015.phpt 033.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-42225@lists.php.net to get a copy of this message
iliaa Wed Dec 20 19:20:01 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/filter logical_filters.c /php-src/ext/filter/tests 015.phpt 033.phpt /php-src NEWS Log: Fixed bug #39898 (FILTER_VALIDATE_URL validates \r\n\t etc). http://cvs.php.net/viewvc.cgi/php-src/ext/filter/logical_filters.c?r1=1.1.2.15&r2=1.1.2.16&diff_format=u Index: php-src/ext/filter/logical_filters.c diff -u php-src/ext/filter/logical_filters.c:1.1.2.15 php-src/ext/filter/logical_filters.c:1.1.2.16 --- php-src/ext/filter/logical_filters.c:1.1.2.15 Wed Dec 20 14:39:01 2006 +++ php-src/ext/filter/logical_filters.c Wed Dec 20 19:20:01 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: logical_filters.c,v 1.1.2.15 2006/12/20 14:39:01 derick Exp $ */ +/* $Id: logical_filters.c,v 1.1.2.16 2006/12/20 19:20:01 iliaa Exp $ */ #include "php_filter.h" #include "filter_private.h" @@ -477,6 +477,13 @@ void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ { php_url *url; + int old_len = Z_STRLEN_P(value); + + php_filter_url(value, flags, option_array, charset TSRMLS_DC); + + if (Z_TYPE_P(value) != IS_STRING || old_len != Z_STRLEN_P(value)) { + RETURN_VALIDATION_FAILED + } /* Use parse_url - if it returns false, we return NULL */ url = php_url_parse_ex(Z_STRVAL_P(value), Z_STRLEN_P(value)); @@ -486,10 +493,10 @@ } if ( - ((flags & FILTER_FLAG_SCHEME_REQUIRED) && url->scheme == NULL) || - ((flags & FILTER_FLAG_HOST_REQUIRED) && url->host == NULL) || - ((flags & FILTER_FLAG_PATH_REQUIRED) && url->path == NULL) || - ((flags & FILTER_FLAG_QUERY_REQUIRED) && url->query == NULL) + url->scheme == NULL || + /* some schemas allow the host to be empty */ + (url->host == NULL && (strcmp(url->scheme, "mailto") && strcmp(url->scheme, "news") && strcmp(url->scheme, "file"))) || + ((flags & FILTER_FLAG_PATH_REQUIRED) && url->path == NULL) || ((flags & FILTER_FLAG_QUERY_REQUIRED) && url->query == NULL) ) { php_url_free(url); RETURN_VALIDATION_FAILED http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/015.phpt?r1=1.4.2.4&r2=1.4.2.5&diff_format=u Index: php-src/ext/filter/tests/015.phpt diff -u php-src/ext/filter/tests/015.phpt:1.4.2.4 php-src/ext/filter/tests/015.phpt:1.4.2.5 --- php-src/ext/filter/tests/015.phpt:1.4.2.4 Tue Dec 19 14:16:23 2006 +++ php-src/ext/filter/tests/015.phpt Wed Dec 20 19:20:01 2006 @@ -24,6 +24,10 @@ '', -1, array(), +'mailto:foo@bar.com', +'news:news.php.net', +'file://foo/bar', +"http://\r\n/bar", ); foreach ($values as $value) { var_dump(filter_var($value, FILTER_VALIDATE_URL)); @@ -48,18 +52,22 @@ string(31) "http://www.example/img/test.png" string(27) "http://www.example/img/dir/" string(26) "http://www.example/img/dir" -string(28) "http//www.example/wrong/url/" -string(17) "http:/www.example" +bool(false) +bool(false) string(18) "file:///tmp/test.c" string(26) "ftp://ftp.example.com/tmp/" -string(11) "/tmp/test.c" -string(1) "/" bool(false) -string(6) "http:/" -string(5) "http:" -string(4) "http" -string(0) "" -string(2) "-1" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +string(18) "mailto:foo@bar.com" +string(17) "news:news.php.net" +string(14) "file://foo/bar" bool(false) bool(false) string(10) "http://qwe" @@ -70,4 +78,4 @@ string(42) "http://www.example.com/path/at/the/server/" bool(false) string(40) "http://www.example.com/index.php?a=b&c=d" -Done +Done \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/033.phpt?r1=1.3.2.4&r2=1.3.2.5&diff_format=u Index: php-src/ext/filter/tests/033.phpt diff -u php-src/ext/filter/tests/033.phpt:1.3.2.4 php-src/ext/filter/tests/033.phpt:1.3.2.5 --- php-src/ext/filter/tests/033.phpt:1.3.2.4 Tue Dec 19 14:16:23 2006 +++ php-src/ext/filter/tests/033.phpt Wed Dec 20 19:20:01 2006 @@ -11,7 +11,7 @@ boolean 1 float 1 123 validate_regexp O'Henry -validate_url PHP 1 foo@bar.com http://a.b.c 1.2.3.4 123 123abc<>() O'Henry 하퍼 +validate_url http://a.b.c validate_email foo@bar.com validate_ip 1.2.3.4 string PHP 1 foo@bar.com http://a.b.c 1.2.3.4 123 123abc() O&#39;Henry 하퍼 http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.447&r2=1.2027.2.547.2.448&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.447 php-src/NEWS:1.2027.2.547.2.448 --- php-src/NEWS:1.2027.2.547.2.447 Wed Dec 20 16:31:10 2006 +++ php-src/NEWS Wed Dec 20 19:20:01 2006 @@ -16,6 +16,7 @@ - Fixed bug #39903 (Notice message when executing __halt_compiler() more than once). (Tony) +- Fixed bug #39898 (FILTER_VALIDATE_URL validates \r\n\t etc). (Ilia) - Fixed bug #39869 (safe_read does not initialize errno). (michiel at boland dot org, Dmitry) - Fixed bug #39850 (SplFileObject throws contradictory/wrong error messages

« previous php.cvs (#42225) next »