You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by bu...@bugzilla.spamassassin.org on 2004/08/22 20:42:50 UTC

[Bug 3715] New: Conf::Parser double counts certain errors, etc.

http://bugzilla.spamassassin.org/show_bug.cgi?id=3715

           Summary: Conf::Parser double counts certain errors, etc.
           Product: Spamassassin
           Version: SVN Trunk (Latest Devel Version)
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P5
         Component: Libraries
        AssignedTo: dev@spamassassin.apache.org
        ReportedBy: felicity@kluge.net


While working on another issues, I found this in parse():

[...]
      if ($ret && $ret eq $Mail::SpamAssassin::Conf::INVALID_VALUE) {
        warn "invalid value for \"$key\": $value\n";
        $conf->{errors}++;
      } else {
        next;
      }
[...]
failed_line:
[...]
    $conf->{errors}++;
[...]

So if a configuration code call returns INVALID_VALUE, errors++, then the parse
continues down to failed_line which tries to have a plugin deal with it, and if
it still fails, errors++ again.

IMO, there are 2 issues here.

1) errors++ is called twice for a single failure, which is obviously wrong.
2) if INVALID_VALUE is returned, parse() tries to have plugins deal with the
option which we already know isn't for plugins, then we throw a second error:


as an example, add a config option "add_header blarg" to a cf file, then run
--lint.  what you get out is:

invalid value for "add_header": blarg
Failed to parse line in SpamAssassin configuration, skipping: add_header blarg
lint: 2 issues detected.  please rerun with debug enabled for more information.



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.