|
|
|
|
@@ -58,7 +58,7 @@ static void php_filter_encode_html_high_low(zval *value, long flags)
|
|
|
|
|
register int x, y;
|
|
|
|
|
smart_str str = {0};
|
|
|
|
|
int len = Z_STRLEN_P(value);
|
|
|
|
|
unsigned char *s = Z_STRVAL_P(value);
|
|
|
|
|
unsigned char *s = (unsigned char *)Z_STRVAL_P(value);
|
|
|
|
|
|
|
|
|
|
if (Z_STRLEN_P(value) == 0) {
|
|
|
|
|
return;
|
|
|
|
|
@@ -106,7 +106,7 @@ static void php_filter_encode_url(zval *value, char* chars, int high, int low, i
|
|
|
|
|
}
|
|
|
|
|
str[y] = '\0';
|
|
|
|
|
efree(Z_STRVAL_P(value));
|
|
|
|
|
Z_STRVAL_P(value) = str;
|
|
|
|
|
Z_STRVAL_P(value) = (char *)str;
|
|
|
|
|
Z_STRLEN_P(value) = y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -120,7 +120,7 @@ static void php_filter_strip(zval *value, long flags)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
str = Z_STRVAL_P(value);
|
|
|
|
|
str = (unsigned char *)Z_STRVAL_P(value);
|
|
|
|
|
buf = safe_emalloc(1, Z_STRLEN_P(value) + 1, 1);
|
|
|
|
|
c = 0;
|
|
|
|
|
for (i = 0; i < Z_STRLEN_P(value); i++) {
|
|
|
|
|
@@ -134,7 +134,7 @@ static void php_filter_strip(zval *value, long flags)
|
|
|
|
|
/* update zval string data */
|
|
|
|
|
buf[c] = '\0';
|
|
|
|
|
efree(Z_STRVAL_P(value));
|
|
|
|
|
Z_STRVAL_P(value) = buf;
|
|
|
|
|
Z_STRVAL_P(value) = (char *)buf;
|
|
|
|
|
Z_STRLEN_P(value) = c;
|
|
|
|
|
}
|
|
|
|
|
/* }}} */
|
|
|
|
|
@@ -149,7 +149,7 @@ static void filter_map_update(filter_map *map, int flag, unsigned char *allowed_
|
|
|
|
|
{
|
|
|
|
|
int l, i;
|
|
|
|
|
|
|
|
|
|
l = strlen(allowed_list);
|
|
|
|
|
l = strlen((char*)allowed_list);
|
|
|
|
|
for (i = 0; i < l; ++i) {
|
|
|
|
|
(*map)[allowed_list[i]] = flag;
|
|
|
|
|
}
|
|
|
|
|
@@ -160,7 +160,7 @@ static void filter_map_apply(zval *value, filter_map *map)
|
|
|
|
|
unsigned char *buf, *str;
|
|
|
|
|
int i, c;
|
|
|
|
|
|
|
|
|
|
str = Z_STRVAL_P(value);
|
|
|
|
|
str = (unsigned char *)Z_STRVAL_P(value);
|
|
|
|
|
buf = safe_emalloc(1, Z_STRLEN_P(value) + 1, 1);
|
|
|
|
|
c = 0;
|
|
|
|
|
for (i = 0; i < Z_STRLEN_P(value); i++) {
|
|
|
|
|
@@ -172,7 +172,7 @@ static void filter_map_apply(zval *value, filter_map *map)
|
|
|
|
|
/* update zval string data */
|
|
|
|
|
buf[c] = '\0';
|
|
|
|
|
efree(Z_STRVAL_P(value));
|
|
|
|
|
Z_STRVAL_P(value) = buf;
|
|
|
|
|
Z_STRVAL_P(value) = (char *)buf;
|
|
|
|
|
Z_STRLEN_P(value) = c;
|
|
|
|
|
}
|
|
|
|
|
/* }}} */
|
|
|
|
|
@@ -255,7 +255,7 @@ void php_filter_unsafe_raw(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
void php_filter_email(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
{
|
|
|
|
|
/* Check section 6 of rfc 822 http://www.faqs.org/rfcs/rfc822.html */
|
|
|
|
|
unsigned char *allowed_list = LOWALPHA HIALPHA DIGIT "!#$%&'*+-/=?^_`{|}~@.[]";
|
|
|
|
|
unsigned char allowed_list[] = LOWALPHA HIALPHA DIGIT "!#$%&'*+-/=?^_`{|}~@.[]";
|
|
|
|
|
filter_map map;
|
|
|
|
|
|
|
|
|
|
filter_map_init(&map);
|
|
|
|
|
@@ -269,7 +269,7 @@ void php_filter_url(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
{
|
|
|
|
|
/* Strip all chars not part of section 5 of
|
|
|
|
|
* http://www.faqs.org/rfcs/rfc1738.html */
|
|
|
|
|
unsigned char *allowed_list = LOWALPHA HIALPHA DIGIT SAFE EXTRA NATIONAL PUNCTUATION RESERVED;
|
|
|
|
|
unsigned char allowed_list[] = LOWALPHA HIALPHA DIGIT SAFE EXTRA NATIONAL PUNCTUATION RESERVED;
|
|
|
|
|
filter_map map;
|
|
|
|
|
|
|
|
|
|
filter_map_init(&map);
|
|
|
|
|
@@ -282,7 +282,7 @@ void php_filter_url(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
void php_filter_number_int(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
{
|
|
|
|
|
/* strip everything [^0-9+-] */
|
|
|
|
|
unsigned char *allowed_list = "+-" DIGIT;
|
|
|
|
|
unsigned char allowed_list[] = "+-" DIGIT;
|
|
|
|
|
filter_map map;
|
|
|
|
|
|
|
|
|
|
filter_map_init(&map);
|
|
|
|
|
@@ -295,7 +295,7 @@ void php_filter_number_int(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
void php_filter_number_float(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
{
|
|
|
|
|
/* strip everything [^0-9+-] */
|
|
|
|
|
unsigned char *allowed_list = "+-" DIGIT;
|
|
|
|
|
unsigned char allowed_list[] = "+-" DIGIT;
|
|
|
|
|
filter_map map;
|
|
|
|
|
|
|
|
|
|
filter_map_init(&map);
|
|
|
|
|
@@ -303,13 +303,13 @@ void php_filter_number_float(PHP_INPUT_FILTER_PARAM_DECL)
|
|
|
|
|
|
|
|
|
|
/* depending on flags, strip '.', 'e', ",", "'" */
|
|
|
|
|
if (flags & FILTER_FLAG_ALLOW_FRACTION) {
|
|
|
|
|
filter_map_update(&map, 2, ".");
|
|
|
|
|
filter_map_update(&map, 2, (unsigned char *) ".");
|
|
|
|
|
}
|
|
|
|
|
if (flags & FILTER_FLAG_ALLOW_THOUSAND) {
|
|
|
|
|
filter_map_update(&map, 3, ",");
|
|
|
|
|
filter_map_update(&map, 3, (unsigned char *) ",");
|
|
|
|
|
}
|
|
|
|
|
if (flags & FILTER_FLAG_ALLOW_SCIENTIFIC) {
|
|
|
|
|
filter_map_update(&map, 4, "eE");
|
|
|
|
|
filter_map_update(&map, 4, (unsigned char *) "eE");
|
|
|
|
|
}
|
|
|
|
|
filter_map_apply(value, &map);
|
|
|
|
|
}
|
|
|
|
|
|