Mailing List Archive

svn commit: rev 6669 - incubator/spamassassin/trunk/lib/Mail/SpamAssassin
Author: felicity
Date: Sun Feb 15 15:25:09 2004
New Revision: 6669

Modified:
incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
Log:
bug 3024: trying to forget() a message that hasn't been learned caused a fatal error to be reported incorrectly. also added in code to learn() to check the result of the forget() call (if it was called) and propagate up fatal errors appropriately.

Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm (original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm Sun Feb 15 15:25:09 2004
@@ -700,10 +700,16 @@
my $orig = $self->{main}->{learn_caller_will_untie};
$self->{main}->{learn_caller_will_untie} = 1;

- $self->forget ($msg);
+ my $fatal = !defined $self->forget ($msg);

# reset the value post-forget() ...
$self->{main}->{learn_caller_will_untie} = $orig;
+
+ # forget() gave us a fatal error, so propagate that up
+ if ($fatal) {
+ dbg("forget() returned a fatal error, so learn() will too");
+ return;
+ }
}
}

@@ -795,11 +801,11 @@
$isspam = 0;
} else {
dbg ("forget: message $msgid seen entry is neither ham nor spam, ignored");
- return;
+ return 0;
}
} else {
dbg ("forget: message $msgid not learnt, ignored");
- return;
+ return 0;
}

if ($isspam) {