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} ? : |