diff options
author | Felipe Pena <felipe@php.net> | 2010-11-07 12:59:22 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2010-11-07 12:59:22 +0000 |
commit | 83ebbc36a13203254ff9c4b74f3eed3775b05a72 (patch) | |
tree | f0a9e567719cb82f233d4883d2dcad79534b8761 | |
parent | 1c556f2030d5093e332b04a62bbff52fe8ce22dd (diff) | |
download | php-git-83ebbc36a13203254ff9c4b74f3eed3775b05a72.tar.gz |
- Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char).
patch by: Justin Martin (frozenfire@php)
-rw-r--r-- | ext/standard/tests/url/bug53248.phpt | 12 | ||||
-rw-r--r-- | ext/standard/url.c | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/ext/standard/tests/url/bug53248.phpt b/ext/standard/tests/url/bug53248.phpt new file mode 100644 index 0000000000..5e31c510df --- /dev/null +++ b/ext/standard/tests/url/bug53248.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #53248 (rawurlencode RFC 3986 EBCDIC support) +--FILE-- +<?php + +var_dump(rawurlencode('A1_-.~')); +var_dump(rawurldecode('%41%31%5F%2D%2E%7E')); + +?> +--EXPECTF-- +string(6) "A1_-.~" +string(6) "A1_-.~"
\ No newline at end of file diff --git a/ext/standard/url.c b/ext/standard/url.c index dd99cb5301..ae9135075a 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -585,7 +585,7 @@ PHPAPI char *php_raw_url_encode(char const *s, int len, int *new_length) str[y++] = hexchars[(unsigned char) s[x] >> 4]; str[y] = hexchars[(unsigned char) s[x] & 15]; #else /*CHARSET_EBCDIC*/ - if (!isalnum(str[y]) && strchr("_-.", str[y]) != NULL) { + 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]; |