Skip to content

Commit 83ebbc3

Browse files
committed
- Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char).
patch by: Justin Martin (frozenfire@php)
1 parent 1c556f2 commit 83ebbc3

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

ext/standard/tests/url/bug53248.phpt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
--TEST--
2+
Bug #53248 (rawurlencode RFC 3986 EBCDIC support)
3+
--FILE--
4+
<?php
5+
6+
var_dump(rawurlencode('A1_-.~'));
7+
var_dump(rawurldecode('%41%31%5F%2D%2E%7E'));
8+
9+
?>
10+
--EXPECTF--
11+
string(6) "A1_-.~"
12+
string(6) "A1_-.~"

ext/standard/url.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ PHPAPI char *php_raw_url_encode(char const *s, int len, int *new_length)
585585
str[y++] = hexchars[(unsigned char) s[x] >> 4];
586586
str[y] = hexchars[(unsigned char) s[x] & 15];
587587
#else /*CHARSET_EBCDIC*/
588-
if (!isalnum(str[y]) && strchr("_-.", str[y]) != NULL) {
588+
if (!isalnum(str[y]) && strchr("_-.~", str[y]) != NULL) {
589589
str[y++] = '%';
590590
str[y++] = hexchars[os_toascii[(unsigned char) s[x]] >> 4];
591591
str[y] = hexchars[os_toascii[(unsigned char) s[x]] & 15];

0 commit comments

Comments
 (0)