| line |
true |
false |
branch |
|
445
|
48 |
3112 |
unless $self->_hss_accept_input_start($text) |
|
451
|
7 |
3153 |
unless $text =~ /^<([a-zA-Z0-9]+)\b(.*)>$/m |
|
454
|
0 |
3153 |
if $self->{'_hssSkipToEnd'} |
|
455
|
0 |
3153 |
if ($tag eq 'script' or $tag eq 'style') |
|
460
|
34 |
3119 |
if $self->_hss_tag_is_banned($tag) |
|
463
|
2 |
3117 |
unless defined $allowed_attr |
|
465
|
3 |
3114 |
unless $self->_hss_get_to_valid_context($tag) |
|
476
|
2 |
1 |
defined $4 ? : |
|
|
4350 |
3 |
defined $3 ? : |
|
|
12 |
4353 |
defined $2 ? : |
|
483
|
1 |
4364 |
unless defined $value_class |
|
486
|
0 |
4364 |
unless defined $attval_handler |
|
489
|
4115 |
249 |
if ($tag_filters) |
|
495
|
796 |
3319 |
unless $attr_filter |
|
499
|
13 |
3555 |
unless defined $filtered_value |
|
502
|
2392 |
1163 |
if ($tag_filters and ref $attr_filter) |
|
505
|
529 |
1863 |
unless defined $filtered_value |
|
513
|
3 |
3111 |
if (my $required = $tag_filters->{'required'}) |
|
516
|
2 |
3 |
unless defined $filtered_attr{$key} and length $filtered_attr{$key} |
|
532
|
1576 |
1536 |
if ($new_context eq 'EMPTY') { } |
|
553
|
30 |
1478 |
unless $self->_hss_accept_input_end($text) |
|
559
|
3 |
1505 |
unless $text =~ m[^(\w+)>$] |
|
562
|
0 |
1505 |
if ($self->{'_hssSkipToEnd'}) |
|
563
|
0 |
0 |
if ($self->{'_hssSkipToEnd'} eq $tag) |
|
570
|
27 |
1478 |
unless grep {$_->{'NAME'} eq $tag;} @{$$self{'_hssStack'};} |
|
580
|
1478 |
2 |
if $entry->{'NAME'} eq $tag |
|
585
|
89 |
1389 |
unless (grep {not $self->{'_hssDeInter'}{$_->{'NAME'}};} @close) |
|
602
|
0 |
382 |
if $self->{'_hssSkipToEnd'} |
|
606
|
2 |
380 |
if ($text =~ /^(\s*)$/) |
|
611
|
1 |
379 |
unless ($self->_hss_get_to_valid_context('CDATA')) |
|
812
|
41 |
3072 |
if (my $tag_callback = $tag->{'CALLBACK'}) |
|
813
|
1 |
40 |
unless &$tag_callback($self, \%entry) |
|
820
|
1576 |
1536 |
if ($tag->{'CTX'} eq 'EMPTY') |
|
822
|
1576 |
0 |
if $entry{'tag'} |
|
825
|
1535 |
1 |
if ($tagname) |
|
829
|
1536 |
0 |
if (defined $entry{'content'}) |
|
833
|
1535 |
1 |
if ($tagname) |
|
877
|
2 |
74 |
$_[0]{'_hssCfg'}{'EscapeFiltered'} ? : |
|
1340
|
210 |
11 |
defined $3 ? : |
|
|
90 |
221 |
defined $2 ? : |
|
|
4753 |
311 |
defined $1 ? : |
|
1400
|
90 |
3404 |
defined $1 ? : |
|
1447
|
3 |
15 |
if $self->{'_hssCfg'}{'AllowRelURL'} and $text =~ m[^((?:[\w\-.!~*|;/?=+\$,%#]|&){0,100})$] |
|
1449
|
5 |
10 |
$text =~ m[ ^ ( https? :// [\w\-\.]{1,100} (?:\:\d{1,5})?
(?: / (?:[\w\-.!~*|;/?=+\$,%#]|&){0,100} )?
)
$
]x ? : |
|
1474
|
2 |
0 |
if $text =~ m[^(
mailto:[\w\-!#\$%&'*+-/=?^_`{|}~.]{1,64} # localpart
\@ # @
[\w\-\.]{1,100} # domain
(?: # opt query string
\?
(?:[\w\-.!~*|;/?=+\$,%#]|&){0,100}
)?
)$]x |
|
1606
|
5 |
0 |
if ($elt =~ /^\s*([\w\-]+)\s*:\s*(.+?)\s*$/s) |
|
1610
|
1 |
4 |
unless defined $value_class |
|
1612
|
0 |
4 |
unless defined $sub |
|
1615
|
4 |
0 |
if (defined $cleanval) |
|
1632
|
2 |
0 |
$_[3] =~ /^\s*([+-]?\d{1,20}(?:\.\d{1,20})?)\s*((?:\%|\*|ex|px|pc|cm|mm|in|pt|em)?)\s*$/i ? : |
|
1646
|
0 |
0 |
$_[3] =~ /^\s*\+?(\d{1,20})\s*$/ ? : |
|
1656
|
12 |
0 |
$_[3] =~ /^\s*(\w{2,20}|#[\da-fA-F]{6})\s*$/ ? : |
|
1666
|
1304 |
0 |
length $_[3] <= 200 ? : |
|
1677
|
2225 |
0 |
$_[3] =~ /^\s*([\w\-]{1,30})\s*$/ ? : |
|
1688
|
0 |
0 |
$_[3] =~ /^\s*([\w\-\, ]{1,200})\s*$/ ? : |
|
1705
|
0 |
0 |
scalar @words ? : |
|
1719
|
2 |
19 |
if ($filter->{'_hssCfg'}{'AllowMailto'} and substr($attval, 0, 7) eq 'mailto:') { } |
|
|
17 |
2 |
elsif ($filter->{'_hssCfg'}{'AllowHref'}) { } |
|
1742
|
2 |
1 |
if ($filter->{'_hssCfg'}{'AllowSrc'}) { } |
|
1759
|
0 |
0 |
if ($attval =~ /^\s*url\((.+)\)\s*$/) { } |
|
1822
|
3 |
1484 |
ref $ban_list eq 'ARRAY' ? : |
|
1827
|
1431 |
56 |
if (my $rules = $cfg->{'Rules'}) |
|
1828
|
12 |
1325 |
if (exists $rules->{'*'} and ref $rules->{'*'} eq 'HASH' && exists $rules->{'*'}{'tag'} && !$rules->{'*'}{'tag'} || !$rules->{'*'}) |
|
1842
|
15 |
1472 |
if ($cfg->{'BanAllBut'}) |
|
1845
|
4 |
2 |
unless $prepared_ban_list->{$dontban} |
|
1870
|
5 |
1426 |
unless $rules and ref $rules eq 'HASH' and keys %$rules |
|
1874
|
0 |
1426 |
unless ref $rules eq 'HASH' |
|
1885
|
14 |
2672 |
unless ($rule) |
|
1891
|
2658 |
14 |
if (my $rule_ref = ref $rule) { } |
|
1894
|
21 |
2637 |
if $rule_ref eq 'CODE' |
|
1897
|
0 |
2658 |
unless ref $rule eq 'HASH' |
|
1910
|
3 |
2655 |
if (my $required = delete $rule->{'required'}) |
|
1911
|
3 |
0 |
if (ref $required eq 'ARRAY' and @$required) |
|
1923
|
927 |
3564 |
if ($ref_type eq 'CODE') |
|
1928
|
2676 |
888 |
unless ($ref_type) |
|
1931
|
1788 |
888 |
if ($value eq '0' or $value eq '1') |
|
1937
|
0 |
888 |
unless $value = eval {
do {
qr/$value/
}
} |
|
1942
|
0 |
1776 |
unless $ref_type eq 'Regexp' |
|
1948
|
1064 |
528 |
$attval =~ /$value/ ? : |
|
1954
|
2644 |
14 |
if keys %prepared_rule |
|
1958
|
15 |
1411 |
unless keys %prepared_rules |
|
1962
|
301 |
1110 |
unless (exists $prepared_rules{'*'}{'*'}) |
|
1970
|
1399 |
12 |
unless ref $prepared_rules{'*'}{'tag'} |
|
1991
|
2284 |
1831 |
if exists $tag_filters->{$key} |
|
1994
|
1633 |
198 |
if exists $tag_filters->{'*'} |
|
1997
|
0 |
198 |
if exists $default_filters->{$key} |
|
2032
|
210 |
90 |
$numeric =~ s/^x//i ? : |
|
2035
|
210 |
90 |
$hex ? : |
|
2037
|
40 |
260 |
if ($number == 38) { } |
|
|
236 |
24 |
elsif ($number < 127) { } |
|
2044
|
16 |
8 |
$hex ? : |
|
2058
|
34 |
3119 |
exists $self->{'_hssBanList'}{$tag} ? : |
|
2078
|
21 |
3476 |
if ($tag eq 'a') |
|
2080
|
0 |
21 |
if $ancestor->{'NAME'} eq 'a' |
|
2084
|
3489 |
8 |
if $self->_hss_valid_in_current_context($tag) |
|
2086
|
2 |
6 |
if ($self->_hss_context eq 'Document') |
|
2088
|
1 |
1 |
if $self->_hss_valid_in_current_context($tag) |
|
2091
|
2 |
5 |
if ($self->_hss_context eq 'Html' and $self->_hss_valid_in_context($tag, 'Flow')) |
|
2100
|
4 |
1 |
unless grep {$self->_hss_valid_in_context($tag, $_->{'CTX'});} @{$$self{'_hssStack'};} |
|
2118
|
0 |
1 |
unless scalar @{$self->{'_hssStack'};} |
|
2143
|
3494 |
17 |
$self->{'_hssContext'}{$context}{$tag} ? : |