called with 2 bind variables when 0 are needed

Steve Freegard steve.freegard at fsl.com
Sun Dec 9 11:24:28 GMT 2007


Kai Schaetzl wrote:
> I upgraded a machine which was still holding CentOS 4.2 to the current 4.5 
> via yum. So far so good. Now, after upgrading MailScanner suddenly throws 
> this error to my warn log:
> called with 2 bind variables when 0 are needed
> 
> Google tells me there was one posting about this in April 2006 about this 
> on this list, no reply to it and not much else.
> 
> Anyone knows what this means?

Bind variables are an SQL thing used to increase efficiency for DBMS 
that compile identical SQL calls and to avoid SQL injection bugs by 
escaping.


> Apparently, MailScanner is stull running ok. The MailScanner log itself 
> goes like this:
> 
> Dec  8 22:10:38 nx05 MailScanner[16160]: New Batch: Scanning 1 messages, 
> 7338 bytes
> Dec  8 22:10:46 nx05 MailScanner[16160]: Spam Checks: Found 1 spam 
> messages
> Dec  8 22:10:46 nx05 MailScanner[16160]: Virus and Content Scanning: 
> Starting
> Dec  8 22:10:50 nx05 MailScanner[16160]: called with 2 bind variables when 
> 0 are needed

As the error appears at the Virus scanning stage I would guess that it 
is related to the SpamAssassin cache and that this is the line that 
generates the message:

  my $sth = $MailScanner::SA::cachedbh->prepare('UPDATE cache SET 
virusinfected=? WHERE md5=?');

Although this is perfectly correct.

Try running 'analyse_SpamAssassin_cache' and see if you get any errors 
(if so remove the cache file).

Otherwise I'd check your versions of DBI and DBD::sqlite and upgrade 
them as necessary to see if the problem disappears.

Kind regards,
Steve.


More information about the MailScanner mailing list