diff options
| author | Adam Harvey <aharvey@php.net> | 2010-03-03 09:25:50 +0000 |
|---|---|---|
| committer | Adam Harvey <aharvey@php.net> | 2010-03-03 09:25:50 +0000 |
| commit | 0efe78a57707dd74ab9ee4e950a1de06591b461d (patch) | |
| tree | 788ea50c2835334f3748b288e1ad2c204e34c0c6 /ext/filter | |
| parent | f0587e80860b21c16b9e02620d506fbeddcf4064 (diff) | |
| download | php-git-0efe78a57707dd74ab9ee4e950a1de06591b461d.tar.gz | |
Fix for bug #51192 (FILTER_VALIDATE_URL will invalidate a hostname that includes '-'). Original patch by solar@azrael.ws.
Diffstat (limited to 'ext/filter')
| -rw-r--r-- | ext/filter/logical_filters.c | 2 | ||||
| -rw-r--r-- | ext/filter/tests/bug51192.phpt | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ext/filter/logical_filters.c b/ext/filter/logical_filters.c index 0b27a641f2..52dcb504ec 100644 --- a/ext/filter/logical_filters.c +++ b/ext/filter/logical_filters.c @@ -467,7 +467,7 @@ void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ s = url->host; while (s < e) { - if (!isalnum((int)*(unsigned char *)s) && *s != '_' && *s != '.') { + if (!isalnum((int)*(unsigned char *)s) && *s != '-' && *s != '.') { goto bad_url; } s++; diff --git a/ext/filter/tests/bug51192.phpt b/ext/filter/tests/bug51192.phpt new file mode 100644 index 0000000000..96c67eae1d --- /dev/null +++ b/ext/filter/tests/bug51192.phpt @@ -0,0 +1,13 @@ +--TEST-- +bug 51192, FILTER_VALIDATE_URL will invalidate a hostname that includes '-' +--SKIPIF-- +<?php if (!extension_loaded("filter")) die("skip"); ?> +--FILE-- +<?php +var_dump(filter_var('http://example.com/path', FILTER_VALIDATE_URL)); +var_dump(filter_var('http://exa-mple.com/path', FILTER_VALIDATE_URL)); +var_dump(filter_var('http://exa_mple.com/path', FILTER_VALIDATE_URL)); +--EXPECT-- +string(23) "http://example.com/path" +string(24) "http://exa-mple.com/path" +bool(false) |
