git: df3b68919789 - 2024Q4 - mail/dspam: fix with sqlite3 with DQS option enabled

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Mon, 02 Dec 2024 14:32:54 UTC
The branch 2024Q4 has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=df3b689197893f41375bee6c6bb93820560cb072

commit df3b689197893f41375bee6c6bb93820560cb072
Author:     Pavel Volkov <pavelivolkov@gmail.com>
AuthorDate: 2024-11-30 11:04:15 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2024-12-02 14:32:26 +0000

    mail/dspam: fix with sqlite3 with DQS option enabled
    
    Use single quotes for strings in SQL statements to avoid them failing.
    
    PR:             279418
    Approved by:    portmgr (build fix blanket)
    MFH:            2024Q4
    
    (cherry picked from commit 9655fa3e957a034ffca3780d87116cbdcc3fdbc9)
---
 mail/dspam/Makefile                       |  2 +-
 mail/dspam/files/patch-src_sqlite3__drv.c | 38 +++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/mail/dspam/Makefile b/mail/dspam/Makefile
index c556d22cff05..47afdf6e1418 100644
--- a/mail/dspam/Makefile
+++ b/mail/dspam/Makefile
@@ -4,7 +4,7 @@
 
 PORTNAME=	dspam
 PORTVERSION=	3.10.2
-PORTREVISION=	10
+PORTREVISION=	11
 CATEGORIES=	mail
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
 
diff --git a/mail/dspam/files/patch-src_sqlite3__drv.c b/mail/dspam/files/patch-src_sqlite3__drv.c
new file mode 100644
index 000000000000..0479d074a6c4
--- /dev/null
+++ b/mail/dspam/files/patch-src_sqlite3__drv.c
@@ -0,0 +1,38 @@
+--- src/sqlite3_drv.c.orig	2024-06-01 03:59:05 UTC
++++ src/sqlite3_drv.c
+@@ -918,7 +918,7 @@ _ds_get_signature (DSPAM_CTX * CTX, struct _ds_spam_si
+   }
+ 
+   snprintf (query, sizeof (query),
+-            "SELECT data FROM dspam_signature_data WHERE signature=\"%s\"",
++            "SELECT data FROM dspam_signature_data WHERE signature='%s'",
+             signature);
+ 
+   if ((sqlite3_prepare(s->dbh, query, -1, &stmt, &query_tail))
+@@ -967,7 +967,7 @@ _ds_set_signature (DSPAM_CTX * CTX, struct _ds_spam_si
+ 
+   snprintf (scratch, sizeof (scratch),
+             "INSERT INTO dspam_signature_data (signature,created_on,data)"
+-            " VALUES (\"%s\",date('now'),?)", signature);
++            " VALUES ('%s',date('now'),?)", signature);
+ 
+   if ((sqlite3_prepare(s->dbh, scratch, -1, &stmt, &query_tail))!=SQLITE_OK)
+   {
+@@ -1001,7 +1001,7 @@ _ds_delete_signature (DSPAM_CTX * CTX, const char *sig
+   }
+ 
+   snprintf (query, sizeof (query),
+-            "DELETE FROM dspam_signature_data WHERE signature=\"%s\"",
++            "DELETE FROM dspam_signature_data WHERE signature='%s'",
+              signature);
+ 
+   if ((sqlite3_exec(s->dbh, query, NULL, NULL, &err))!=SQLITE_OK)
+@@ -1028,7 +1028,7 @@ _ds_verify_signature (DSPAM_CTX * CTX, const char *sig
+   }
+ 
+   snprintf (query, sizeof (query),
+-        "SELECT signature FROM dspam_signature_data WHERE signature=\"%s\"",
++        "SELECT signature FROM dspam_signature_data WHERE signature='%s'",
+         signature);
+ 
+   if ((sqlite3_get_table(s->dbh, query, &row, &nrow, &ncolumn, &err))!=SQLITE_OK)  {