Comment 6 for bug 275746

Revision history for this message
Hein-PietervanBraam (hp) wrote :

I have looked into this bug, and I have found the following problem:

plugins/sa-junk-plugin/em-junk-filter.c starts spamc through pipe_to_sa_full(). This function starts the various client programs and checks the exit status of the command that was run.

This last part is the problem : on line 253 a check for the exit code of either spamc or spamassassin is done and an error is returned to evolution (which results in the popup).

The interesting thing about this is that the rest of the plugin uses a non-zero exit status to denote spam, but the pipe_to_sa_full() funtion returns an error when the exit status is non-zero. So, every spam message gets processed as it should be, but pipe_to_sa_full() considers it an error.

Spamassassin and spamc use error code '64' to denote abnormal program termination. pipe_to_sa_full() should thus check for '64' or '70' in the case of spamassassin, and check for >1 in the case of spamc before throwing an error.

Attached you will find a patch that changes the error to only appear if the errorcode is >64.