You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2022/04/11 11:38:39 UTC

svn commit: r1899744 - in /spamassassin/trunk: lib/Mail/SpamAssassin/SQLBasedAddrList.pm sql/txrep_sqlite.sql

Author: hege
Date: Mon Apr 11 11:38:39 2022
New Revision: 1899744

URL: http://svn.apache.org/viewvc?rev=1899744&view=rev
Log:
Bug 7941 - sql/txrep_sqlite.sql: typo in UPDATE trigger column name breaks txrep DB

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
    spamassassin/trunk/sql/txrep_sqlite.sql

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm?rev=1899744&r1=1899743&r2=1899744&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm Mon Apr 11 11:38:39 2022
@@ -220,7 +220,15 @@ sub get_addr_entry {
     push(@args, @signedby);
   }
   $sql .= " ORDER BY last_hit";
+
   my $sth = $self->{dbh}->prepare($sql);
+
+  unless (defined($sth)) {
+    info("auto-whitelist: sql-based get_addr_entry %s: SQL prepare error: %s",
+         join('|',@args), $self->{dbh}->errstr);
+    return $entry;
+  }
+
   my $rc = $sth->execute($self->{_username}, @args);
 
   if (!$rc) { # there was an error, but try to go on
@@ -302,8 +310,15 @@ sub add_score {
     } elsif ($self->{dsn} =~ /^DBI:(?:mysql|MariaDB)/i) {
        $sql .= " ON DUPLICATE KEY UPDATE msgcount = ?, totscore = totscore + ?";
     }
+
     my $sth = $self->{dbh}->prepare($sql);
 
+    unless (defined($sth)) {
+      info("auto-whitelist: sql-based add_score/insert %s: SQL prepare error: %s",
+           join('|',@args), $self->{dbh}->errstr);
+      return $entry;
+    }
+
     if (!$self->{_with_awl_signer}) {
       my $rc;
       if ($self->{dsn} =~ /^DBI:(?:pg|mysql|MariaDB)/i) {
@@ -361,6 +376,13 @@ sub add_score {
     push(@args, $ip);
 
     my $sth = $self->{dbh}->prepare($sql);
+
+    unless (defined($sth)) {
+      info("auto-whitelist: sql-based add_score/update %s: SQL prepare error: %s",
+           join('|',@args), $self->{dbh}->errstr);
+      return $entry;
+    }
+
     my $rc = $sth->execute(@args);
 
     if (!$rc) {
@@ -421,6 +443,13 @@ sub remove_entry {
   }
 
   my $sth = $self->{dbh}->prepare($sql);
+
+  unless (defined($sth)) {
+    info("auto-whitelist: sql-based remove_entry %s: SQL prepare error: %s",
+         join('|',@args), $self->{dbh}->errstr);
+    return;
+  }
+
   my $rc = $sth->execute(@args);
 
   if (!$rc) {

Modified: spamassassin/trunk/sql/txrep_sqlite.sql
URL: http://svn.apache.org/viewvc/spamassassin/trunk/sql/txrep_sqlite.sql?rev=1899744&r1=1899743&r2=1899744&view=diff
==============================================================================
--- spamassassin/trunk/sql/txrep_sqlite.sql (original)
+++ spamassassin/trunk/sql/txrep_sqlite.sql Mon Apr 11 11:38:39 2022
@@ -15,7 +15,7 @@ CREATE TRIGGER [UpdateLastHit]
     AFTER UPDATE
     ON txrep
     FOR EACH ROW
-    WHEN NEW.last_hot < OLD.last_hit
+    WHEN NEW.last_hit < OLD.last_hit
 BEGIN
     UPDATE txrep SET last_hit=CURRENT_TIMESTAMP 
     WHERE (username=OLD.username AND email=OLD.email AND signedby=OLD.signedby AND ip=OLD.ip);