Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 226935 Details for
Bug 313761
[perl-experimental] mail-filter/spamassassin-3.3.1 dev-lang/perl-5.12.0 numerous errors
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
spamassassin-3.3.2 proposed changes
sa.diff (text/plain), 8.71 KB, created by
David Abbott
on 2010-04-07 23:13:34 UTC
(
hide
)
Description:
spamassassin-3.3.2 proposed changes
Filename:
MIME Type:
Creator:
David Abbott
Created:
2010-04-07 23:13:34 UTC
Size:
8.71 KB
patch
obsolete
>Index: rulesrc/sandbox/jm/EmailBL.pm >=================================================================== >--- rulesrc/sandbox/jm/EmailBL.pm (revision 930024) >+++ rulesrc/sandbox/jm/EmailBL.pm (working copy) >@@ -307,7 +307,7 @@ > sub _lookup { > my ($self, $pms, $prs, $emails) = @_; > >- return 0 unless defined @$emails; >+ return 0 unless @$emails; > > my %digests = map { md5_hex($_) => $_ } @$emails; > my $dcnt = scalar keys %digests; >Index: lib/Mail/SpamAssassin/HTML.pm >=================================================================== >--- lib/Mail/SpamAssassin/HTML.pm (revision 930024) >+++ lib/Mail/SpamAssassin/HTML.pm (working copy) >@@ -191,7 +191,7 @@ > my $self = shift; > my %options = @_; > >- return join('', @{ $self->{text} }) unless keys %options; >+ return join('', @{ $self->{text} }) unless %options; > > my $mask; > while (my ($k, $v) = each %options) { >Index: lib/Mail/SpamAssassin/Dns.pm >=================================================================== >--- lib/Mail/SpamAssassin/Dns.pm (revision 930024) >+++ lib/Mail/SpamAssassin/Dns.pm (working copy) >@@ -754,7 +754,7 @@ > dbg("dns: entering helper-app run mode"); > $self->{old_slash} = $/; # Razor pollutes this > %{$self->{old_env}} = (); >- if ( defined %ENV ) { >+ if ( %ENV ) { > # undefined values in %ENV can result due to autovivification elsewhere, > # this prevents later possible warnings when we restore %ENV > while (my ($key, $value) = each %ENV) { >Index: lib/Mail/SpamAssassin/Plugin/Check.pm >=================================================================== >--- lib/Mail/SpamAssassin/Plugin/Check.pm (revision 930024) >+++ lib/Mail/SpamAssassin/Plugin/Check.pm (working copy) >@@ -307,64 +307,51 @@ > my $package_name = __PACKAGE__; > my $methodname = $package_name."::_".$ruletype."_tests_".$clean_priority; > >- if (defined &{$methodname} && !$doing_user_rules) { >-run_compiled_method: >- # dbg("rules: run_generic_tests - calling %s", $methodname); >- my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline }); >- my $err = $t->run(sub { >- no strict "refs"; >- $methodname->($pms, @{$opts{args}}); >- }); >- if ($t->timed_out() && $master_deadline && time > $master_deadline) { >- info("check: exceeded time limit in $methodname, skipping further tests"); >- $pms->{deadline_exceeded} = 1; >- } >- return; >- } >+ if (!defined &{$methodname} || $doing_user_rules) { > >- # use %nopts for named parameter-passing; it's more friendly to future-proof >- # subclassing, since new parameters can be added without breaking third-party >- # subclassed implementations of this plugin. >- my %nopts = ( >- ruletype => $ruletype, >- doing_user_rules => $doing_user_rules, >- priority => $priority, >- clean_priority => $clean_priority >- ); >+ # use %nopts for named parameter-passing; it's more friendly >+ # to future-proof subclassing, since new parameters can be added without >+ # breaking third-party subclassed implementations of this plugin. >+ my %nopts = ( >+ ruletype => $ruletype, >+ doing_user_rules => $doing_user_rules, >+ priority => $priority, >+ clean_priority => $clean_priority >+ ); > >- # build up the eval string... >- $self->{evalstr_methodname} = $methodname; >- $self->{evalstr_chunk_current_methodname} = undef; >- $self->{evalstr_chunk_methodnames} = []; >- $self->{evalstr_chunk_prefix} = []; # stack (array) of source code sections >- $self->{evalstr} = ''; $self->{evalstr_l} = 0; >- $self->{evalstr2} = ''; >- $self->begin_evalstr_chunk($pms); >+ # build up the eval string... >+ $self->{evalstr_methodname} = $methodname; >+ $self->{evalstr_chunk_current_methodname} = undef; >+ $self->{evalstr_chunk_methodnames} = []; >+ $self->{evalstr_chunk_prefix} = []; # stack (array) of source code sections >+ $self->{evalstr} = ''; $self->{evalstr_l} = 0; >+ $self->{evalstr2} = ''; >+ $self->begin_evalstr_chunk($pms); > >- $self->push_evalstr_prefix($pms, ' >- # start_rules_plugin_code '.$ruletype.' '.$priority.' >- my $scoresptr = $self->{conf}->{scores}; >- '); >- if (defined $opts{pre_loop_body}) { >- $opts{pre_loop_body}->($self, $pms, $conf, %nopts); >- } >- $self->add_evalstr($pms, >- $self->start_rules_plugin_code($ruletype, $priority) ); >- while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) { >- $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts); >- } >- if (defined $opts{post_loop_body}) { >- $opts{post_loop_body}->($self, $pms, $conf, %nopts); >- } >+ $self->push_evalstr_prefix($pms, ' >+ # start_rules_plugin_code '.$ruletype.' '.$priority.' >+ my $scoresptr = $self->{conf}->{scores}; >+ '); >+ if (defined $opts{pre_loop_body}) { >+ $opts{pre_loop_body}->($self, $pms, $conf, %nopts); >+ } >+ $self->add_evalstr($pms, >+ $self->start_rules_plugin_code($ruletype, $priority) ); >+ while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) { >+ $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts); >+ } >+ if (defined $opts{post_loop_body}) { >+ $opts{post_loop_body}->($self, $pms, $conf, %nopts); >+ } > >- $self->flush_evalstr($pms, 'run_generic_tests'); >- $self->free_ruleset_source($pms, $ruletype, $priority); >+ $self->flush_evalstr($pms, 'run_generic_tests'); >+ $self->free_ruleset_source($pms, $ruletype, $priority); > >- # clear out a previous version of this method >- undef &{$methodname}; >+ # clear out a previous version of this method >+ undef &{$methodname}; > >- # generate the loop that goes through each line... >- my $evalstr = <<"EOT"; >+ # generate the loop that goes through each line... >+ my $evalstr = <<"EOT"; > { > package $package_name; > >@@ -373,41 +360,52 @@ > sub $methodname { > EOT > >- for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) { >- $evalstr .= " $chunk_methodname(\@_);\n"; >- } >+ for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) { >+ $evalstr .= " $chunk_methodname(\@_);\n"; >+ } > >- $evalstr .= <<"EOT"; >+ $evalstr .= <<"EOT"; > } > > 1; > } > EOT > >- delete $self->{evalstr}; # free up some RAM before we eval() >- delete $self->{evalstr2}; >- delete $self->{evalstr_methodname}; >- delete $self->{evalstr_chunk_current_methodname}; >- delete $self->{evalstr_chunk_methodnames}; >- delete $self->{evalstr_chunk_prefix}; >+ delete $self->{evalstr}; # free up some RAM before we eval() >+ delete $self->{evalstr2}; >+ delete $self->{evalstr_methodname}; >+ delete $self->{evalstr_chunk_current_methodname}; >+ delete $self->{evalstr_chunk_methodnames}; >+ delete $self->{evalstr_chunk_prefix}; > >- dbg("rules: run_generic_tests - compiling eval code: %s, priority %s", >- $ruletype, $priority); >-# dbg("rules: eval code to compile: $evalstr"); >- my $eval_result; >- { my $timer = $self->{main}->time_method('compile_gen'); >- $eval_result = eval($evalstr); >- } >- if (!$eval_result) { >- my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat; >- warn "rules: failed to compile $ruletype tests, skipping:\n". >- "\t($eval_stat)\n"; >- $pms->{rule_errors}++; >- } >- else { >+ dbg("rules: run_generic_tests - compiling eval code: %s, priority %s", >+ $ruletype, $priority); >+ # dbg("rules: eval code to compile: $evalstr"); >+ my $eval_result; >+ { my $timer = $self->{main}->time_method('compile_gen'); >+ $eval_result = eval($evalstr); >+ } >+ if (!$eval_result) { >+ my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat; >+ warn "rules: failed to compile $ruletype tests, skipping:\n". >+ "\t($eval_stat)\n"; >+ $pms->{rule_errors}++; >+ return; >+ } > dbg("rules: compiled $ruletype tests"); >- goto run_compiled_method; > } >+ >+#run_compiled_method: >+# dbg("rules: run_generic_tests - calling %s", $methodname); >+ my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline }); >+ my $err = $t->run(sub { >+ no strict "refs"; >+ $methodname->($pms, @{$opts{args}}); >+ }); >+ if ($t->timed_out() && $master_deadline && time > $master_deadline) { >+ info("check: exceeded time limit in $methodname, skipping further tests"); >+ $pms->{deadline_exceeded} = 1; >+ } > } > > sub begin_evalstr_chunk { >Index: lib/Mail/SpamAssassin/Plugin/BodyEval.pm >=================================================================== >--- lib/Mail/SpamAssassin/Plugin/BodyEval.pm (revision 930024) >+++ lib/Mail/SpamAssassin/Plugin/BodyEval.pm (working copy) >@@ -119,7 +119,7 @@ > } > > # If there are no words, mark if there's at least 1 image ... >- if (keys %html == 0 && exists $pms->{html}{inside}{img}) { >+ if (!%html && exists $pms->{html}{inside}{img}) { > # Use "\n" as the mark since it can't ever occur normally > $html{"\n"}=1; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 313761
: 226935