Package: spamassassin
Version: 3.2.5-1
Severity: normal
Tags: patch

$ sa-learn -f /dev/stdin < /dev/null
Learned tokens from 1 message(s) (1 message(s) examined)

I call sa-learn in a script, and give it a list of messages that I
know are ham or spam, using -f.  Sometimes the list is empty, and to
my surprise sa-learn always reports that it has learned from 1
message.

The problem is that on line 379, sa-learn decides that if its list of
targets is empty, it must be reading a message from stdin.  But that's
not true if it's been given an empty list of messages.  The attached
patch corrects the error.

Thanks,
Andrew.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (300, 'unstable'), (200, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.24 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) (ignored: LC_ALL set to 
en_US)
Shell: /bin/sh linked to /bin/bash

Versions of packages spamassassin depends on:
ii  libdigest-sha1-perl           2.11-2+b1  NIST SHA-1 message digest algorith
ii  libhtml-parser-perl           3.56-1+b1  A collection of modules that parse
ii  libnet-dns-perl               0.63-2     Perform DNS queries from a Perl sc
ii  libsocket6-perl               0.20-1     Perl extensions for IPv6
ii  libsys-hostname-long-perl     1.4-2      Figure out the long (fully-qualifi
ii  libwww-perl                   5.812-1    WWW client/server library for Perl
ii  perl                          5.10.0-11  Larry Wall's Practical Extraction 
ii  perl-modules [libarchive-tar- 5.10.0-11  Core Perl modules

Versions of packages spamassassin recommends:
ii  gcc                           4:4.3.1-1  The GNU C compiler
ii  gnupg                         1.4.9-2    GNU privacy guard - a free PGP rep
ii  libc6-dev                     2.7-10     GNU C Library: Development Librari
pn  libmail-spf-perl              <none>     (no description available)
pn  libsys-syslog-perl            <none>     (no description available)
ii  make                          3.81-5     The GNU version of the "make" util
pn  re2c                          <none>     (no description available)
ii  spamc                         3.2.5-1    Client for SpamAssassin spam filte

-- no debconf information
--- /usr/bin/sa-learn.orig      2008-07-17 05:58:03.000000000 -0400
+++ /usr/bin/sa-learn   2008-07-17 05:58:05.000000000 -0400
@@ -376,7 +376,7 @@
 
   my $tempfile; # will be defined if stdin -> tempfile
   push(@targets, @ARGV);
-  @targets = ('-') unless @targets;
+  @targets = ('-') unless @targets || $opt{folders};
 
   for(my $elem = 0; $elem <= $#targets; $elem++) {
     # ArchiveIterator doesn't really like STDIN, so if "-" is specified

Reply via email to