]> granicus.if.org Git - php/commitdiff
Fixed bug #47435 (FILTER_FLAG_NO_PRIV_RANGE does not work with ipv6
authorIlia Alshanetsky <iliaa@php.net>
Mon, 23 Feb 2009 16:52:29 +0000 (16:52 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 23 Feb 2009 16:52:29 +0000 (16:52 +0000)
addresses in the filter extension)

ext/filter/logical_filters.c

index 2df6265df2595a741c5dade6e684b8019dd1d639..6074af0e2088dc75ea0f2608e5502c474274286d 100644 (file)
@@ -655,6 +655,12 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
                                if (res < 1) {
                                        RETURN_VALIDATION_FAILED
                                }
+                               /* Check flags */
+                               if (flags & FILTER_FLAG_NO_PRIV_RANGE) {
+                                       if (Z_STRLEN_P(value) >=2 && (!strncasecmp("FC", Z_STRVAL_P(value), 2) || !strncasecmp("FD", Z_STRVAL_P(value), 2))) {
+                                               RETURN_VALIDATION_FAILED
+                                       }
+                               }
                        }
                        break;
        }