svn commit: r1936559 - spamassassin/trunk/lib/Mail/SpamAssassin
[email protected] Fri, 24 Jul 2026 20:53:41 -0000
| Newsgroups | gmane.mail.spam.spamassassin.cvs |
|---|---|
| Message-ID | <178492642128.1887207.10856502554666732865@svn03-he-fi> |
Author: fkento
Date: Fri Jul 24 20:53:40 2026
New Revision: 1936559
Log:
Bug 8404: Fix HTML_OBFUSCATE_* false positives
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm Fri Jul 24 18:45:04 2026 (r1936558)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm Fri Jul 24 20:53:40 2026 (r1936559)
@@ -1147,16 +1147,18 @@ sub html_text {
# 1. using \w or [A-Za-z] instead of \S or non-punctuation
# 2. exempting certain tags
# no re "strict"; # since perl 5.21.8: Ranges of ASCII printables...
- if ($text =~ /^[^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]/s &&
- $self->{text}->[-1] =~ /[^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]\z/s)
+ # Bug 8404: \x00 is the paragraph-break marker pushed by html_whitespace() for block
+ # tags (div, p, ...). It is not in \s, so it is included here explicitly;
+ if ($text =~ /^[^\s\x00\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]/s &&
+ $self->{text}->[-1] =~ /[^\s\x00\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]\z/s)
{
$self->{obfuscation}++;
}
if ($self->{text}->[-1] =~
- /\b([^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})\z/s)
+ /\b([^\s\x00\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})\z/s)
{
my $start = length($1);
- if ($text =~ /^([^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})\b/s) {
+ if ($text =~ /^([^\s\x00\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})\b/s) {
$self->{backhair}->{$start . "_" . length($1)}++;
}
}