]> granicus.if.org Git - php/commitdiff
Bug #6016: Fix EBCDIC logic error in urlencode()
authorMartin Kraemer <martin@php.net>
Tue, 8 Aug 2000 09:06:51 +0000 (09:06 +0000)
committerMartin Kraemer <martin@php.net>
Tue, 8 Aug 2000 09:06:51 +0000 (09:06 +0000)
(a strchr() test was used backwards)
Reported by: dumbunny@tivo.com

ext/standard/url.c

index d1d6496565bc19eb420b37d995ba358bca321301..ab12801d30c2d30211357d5284547a48a4dab0a6 100644 (file)
@@ -253,7 +253,8 @@ char *php_url_encode(char *s, int len)
                        str[y] = hexchars[(unsigned char) s[x] & 15];
                }
 #else /*CHARSET_EBCDIC*/
-               } else if (!isalnum(str[y]) && strchr("_-.", str[y]) != NULL) {
+               } else if (!isalnum(str[y]) && strchr("_-.", str[y]) == NULL) {
+                       /* Allow only alphanumeric chars and '_', '-', '.'; escape the rest */
                        str[y++] = '%';
                        str[y++] = hexchars[os_toascii[(unsigned char) s[x]] >> 4];
                        str[y] = hexchars[os_toascii[(unsigned char) s[x]] & 0x0F];