Hello,
Here's an update of mail/dspam to maintenance release 3.4.
It includes two patches from CVS to avoid segfaults on errors in the
configuration file, and to fix --summary.
Other changes from 3.4:
DOC: Documented user preferences in README
MAINT: Added dspam_train tool, replacing most functions of dspam_corpus
MAINT: Code cleanup and performance improvements
MAINT: Significant improvements in accuracy, specifically reduced false pos.
MAINT: Removed experimental neural collaboration functions
MAINT: Added ClassAlias configuration directive to dspam.conf
MAINT: Added undo option for retraining via WebUI
MAINT: Added storeFragments support to WebUI
MAINT: Added mass-retraining support to WebUI
BUGFIX: DSPAM segfaults when invalid UID specified using UIDInSignature
BUGFIX: No output when using --classify with --client
BUGFIX: dspam_corpus overrides default dspam.conf settings
BUGFIX: Multi-driver builds fail when preferences-extension is not supported
I'm using that version for 1 month with no issue so far.
Best regards,
-Frank.
Index: Makefile
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/Makefile,v
retrieving revision 1.9
diff -u -r1.9 Makefile
--- Makefile 15 Feb 2006 05:58:19 -0000 1.9
+++ Makefile 10 Mar 2006 11:37:28 -0000
@@ -2,9 +2,8 @@
COMMENT= "anti-spam filter"
-VERSION= 3.6.3
+VERSION= 3.6.4
DISTNAME= dspam-${VERSION}
-PKGNAME= ${DISTNAME}p0
SHARED_LIBS= dspam 7.0
MODGNU_SHARED_LIBS= dspam ''
LIBdspam_ALIAS= realdspam
Index: distinfo
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/distinfo,v
retrieving revision 1.7
diff -u -r1.7 distinfo
--- distinfo 22 Jan 2006 04:10:42 -0000 1.7
+++ distinfo 10 Mar 2006 11:37:28 -0000
@@ -1,4 +1,4 @@
-SIZE (dspam-3.6.3.tar.gz) = 740097
-MD5 (dspam-3.6.3.tar.gz) = db1aedb9677e6bf5c7a47a72d4f130e5
-SHA1 (dspam-3.6.3.tar.gz) = 37d0a0b1caddd085483712286505aa4016dde008
-RMD160 (dspam-3.6.3.tar.gz) = e70719cb9524b9aa7c786b4e6fddeed6516a9f2a
+MD5 (dspam-3.6.4.tar.gz) = e9fdb00a23a99e05c9e4c22aa8aa3655
+RMD160 (dspam-3.6.4.tar.gz) = fcd431205e3fd737cfdfb90b695ba7c84bbb27d5
+SHA1 (dspam-3.6.4.tar.gz) = bc11d8c1584175de9cdeed7ed20e11c2a49bf53a
+SIZE (dspam-3.6.4.tar.gz) = 743664
Index: patches/patch-src_agent_shared_c
===================================================================
RCS file: patches/patch-src_agent_shared_c
diff -N patches/patch-src_agent_shared_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_agent_shared_c 10 Mar 2006 11:37:28 -0000
@@ -0,0 +1,38 @@
+$OpenBSD$
+--- src/agent_shared.c.orig Sun Feb 5 23:22:07 2006
++++ src/agent_shared.c Fri Mar 10 10:18:41 2006
+@@ -1,4 +1,4 @@
+-/* $Id: agent_shared.c,v 1.66 2006/02/02 21:36:19 jonz Exp $ */
++/* $Id: agent_shared.c,v 1.67 2006/02/22 13:53:11 jonz Exp $ */
+
+ /*
+ DSPAM
+@@ -495,7 +495,7 @@ int process_features(AGENT_CTX *ATX, con
+ char *ptr, *dup, *ptrptr;
+ int ret = 0;
+
+- if (in[0]==0)
++ if (!in || in[0]==0)
+ return 0;
+
+ dup = strdup(in);
+@@ -549,6 +549,9 @@ int process_features(AGENT_CTX *ATX, con
+
+ int process_mode(AGENT_CTX *ATX, const char *mode) {
+
++ if (!mode)
++ return EINVAL;
++
+ if (!strcmp(mode, "toe"))
+ ATX->training_mode = DST_TOE;
+ else if (!strcmp(mode, "teft"))
+@@ -843,6 +846,9 @@ bail:
+ int process_parseto(AGENT_CTX *ATX, const char *buf) {
+ char *y = NULL;
+ char *x;
++
++ if (!buf)
++ return EINVAL;
+
+ x = strstr(buf, "<spam-");
+ if (!x)
Index: patches/patch-src_base64_c
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/patches/patch-src_base64_c,v
retrieving revision 1.1
diff -u -r1.1 patch-src_base64_c
--- patches/patch-src_base64_c 26 Oct 2005 06:18:38 -0000 1.1
+++ patches/patch-src_base64_c 10 Mar 2006 11:37:28 -0000
@@ -1,7 +1,7 @@
$OpenBSD: patch-src_base64_c,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/base64.c.orig Sat Sep 24 19:49:48 2005
-+++ src/base64.c Mon Oct 17 14:48:42 2005
-@@ -199,7 +199,7 @@ base64encode (const char *buf)
+--- src/base64.c.orig Sun Jan 22 02:59:14 2006
++++ src/base64.c Fri Mar 10 10:09:17 2006
+@@ -201,7 +201,7 @@ base64encode (const char *buf)
}
if (out[strlen (out) - 1] != '\n')
Index: patches/patch-src_client_c
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/patches/patch-src_client_c,v
retrieving revision 1.1
diff -u -r1.1 patch-src_client_c
--- patches/patch-src_client_c 26 Oct 2005 06:18:38 -0000 1.1
+++ patches/patch-src_client_c 10 Mar 2006 11:37:28 -0000
@@ -1,21 +1,35 @@
$OpenBSD: patch-src_client_c,v 1.1 2005/10/26 06:18:38 jakob Exp $
---- src/client.c.orig Sat Sep 24 19:49:48 2005
-+++ src/client.c Mon Oct 17 14:48:42 2005
-@@ -108,7 +108,7 @@ int client_process(AGENT_CTX *ATX, buffe
+--- src/client.c.orig Fri Mar 10 10:12:29 2006
++++ src/client.c Fri Mar 10 10:20:06 2006
+@@ -1,4 +1,4 @@
+-/* $Id: client.c,v 1.59 2006/01/31 15:52:11 jonz Exp $ */
++/* $Id: client.c,v 1.60 2006/02/15 17:57:24 jonz Exp $ */
- /* RCPT TO - Send recipient information */
+ /*
+ DSPAM
+@@ -161,10 +161,15 @@ int client_process(AGENT_CTX *ATX, buffe
-- strcpy(buf, "RCPT TO: ");
-+ strlcpy(buf, "RCPT TO: ", sizeof (buf));
- node_nt = c_nt_first(ATX->users, &c_nt);
- while(node_nt != NULL) {
- const char *ptr = (const char *) node_nt->ptr;
-@@ -308,7 +308,7 @@ int client_connect(AGENT_CTX *ATX, int f
- if (domain) {
- sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
- saun.sun_family = AF_UNIX;
-- strcpy(saun.sun_path, host);
-+ strlcpy(saun.sun_path, host, sizeof (saun.sun_path));
- addr_len = sizeof(saun.sun_family) + strlen(saun.sun_path) + 1;
+ /* Server response */
- LOGDEBUG(INFO_CLIENT_CONNECTING, host, 0);
+- if (ATX->flags & DAF_STDOUT || ATX->operating_mode == DSM_CLASSIFY) {
++ if (ATX->flags & DAF_STDOUT || ATX->flags & DAF_SUMMARY ||
++ ATX->operating_mode == DSM_CLASSIFY)
++ {
+ char *line = NULL;
+ int head = !(ATX->flags & DAF_STDOUT);
+
++ if (ATX->flags & DAF_SUMMARY)
++ head = 1;
++
+ line = client_getline(&TTX, 300);
+
+ while(line != NULL && strcmp(line, ".")) {
+@@ -183,6 +188,8 @@ int client_process(AGENT_CTX *ATX, buffe
+ }
+ } else {
+ printf("%s\n", line);
++ if (ATX->flags & DAF_SUMMARY)
++ break;
+ }
+ free(line);
+ line = client_getline(&TTX, 300);
Index: patches/patch-src_dspam_c
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/patches/patch-src_dspam_c,v
retrieving revision 1.3
diff -u -r1.3 patch-src_dspam_c
--- patches/patch-src_dspam_c 22 Jan 2006 04:10:43 -0000 1.3
+++ patches/patch-src_dspam_c 10 Mar 2006 11:37:28 -0000
@@ -1,6 +1,6 @@
$OpenBSD: patch-src_dspam_c,v 1.3 2006/01/22 04:10:43 brad Exp $
---- src/dspam.c.orig Wed Jan 18 11:48:53 2006
-+++ src/dspam.c Sat Jan 21 22:54:41 2006
+--- src/dspam.c.orig Tue Jan 31 21:25:46 2006
++++ src/dspam.c Fri Mar 10 10:09:17 2006
@@ -382,7 +382,7 @@ process_message (
CTX->confidence = 1.0;
STATUS("A virus was detected in the message contents");
@@ -28,7 +28,7 @@
internally_canned = 1;
}
}
-@@ -762,10 +762,10 @@ process_message (
+@@ -743,10 +743,10 @@ process_message (
switch (CTX->result) {
case DSR_ISSPAM:
@@ -41,7 +41,7 @@
break;
}
-@@ -1030,7 +1030,7 @@ int tag_message(AGENT_CTX *ATX, ds_messa
+@@ -1011,7 +1011,7 @@ int tag_message(AGENT_CTX *ATX, ds_messa
int tagged = 0;
char spam_subject[16];
@@ -50,7 +50,7 @@
if (_ds_pref_val(ATX->PTX, "spamSubject")[0] != '\n' &&
_ds_pref_val(ATX->PTX, "spamSubject")[0] != 0)
{
-@@ -1595,7 +1595,7 @@ int process_users(AGENT_CTX *ATX, buffer
+@@ -1585,7 +1585,7 @@ int process_users(AGENT_CTX *ATX, buffer
if (parse_message == NULL) {
LOG(LOG_CRIT, ERR_MEM_ALLOC);
presult->exitcode = ERC_PROCESS;
Index: patches/patch-src_mysql_drv_c
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/patches/patch-src_mysql_drv_c,v
retrieving revision 1.1
diff -u -r1.1 patch-src_mysql_drv_c
--- patches/patch-src_mysql_drv_c 26 Oct 2005 06:18:39 -0000 1.1
+++ patches/patch-src_mysql_drv_c 10 Mar 2006 11:37:28 -0000
@@ -1,7 +1,7 @@
$OpenBSD: patch-src_mysql_drv_c,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- src/mysql_drv.c.orig Sat Oct 1 17:33:44 2005
-+++ src/mysql_drv.c Mon Oct 17 14:48:42 2005
-@@ -1350,7 +1350,7 @@ _ds_get_nextuser (DSPAM_CTX * CTX)
+--- src/mysql_drv.c.orig Thu Feb 2 18:15:36 2006
++++ src/mysql_drv.c Fri Mar 10 10:09:18 2006
+@@ -1353,7 +1353,7 @@ _ds_get_nextuser (DSPAM_CTX * CTX)
virtual_username,
virtual_table);
#else
Index: patches/patch-src_pgsql_drv_c
===================================================================
RCS file: /cvs/openbsd/ports/mail/dspam/patches/patch-src_pgsql_drv_c,v
retrieving revision 1.1
diff -u -r1.1 patch-src_pgsql_drv_c
--- patches/patch-src_pgsql_drv_c 26 Oct 2005 06:18:39 -0000 1.1
+++ patches/patch-src_pgsql_drv_c 10 Mar 2006 11:37:28 -0000
@@ -1,7 +1,7 @@
$OpenBSD: patch-src_pgsql_drv_c,v 1.1 2005/10/26 06:18:39 jakob Exp $
---- src/pgsql_drv.c.orig Mon Oct 10 15:52:21 2005
-+++ src/pgsql_drv.c Mon Oct 17 14:48:42 2005
-@@ -1390,7 +1390,7 @@ _ds_get_nextuser (DSPAM_CTX * CTX)
+--- src/pgsql_drv.c.orig Thu Feb 2 18:15:36 2006
++++ src/pgsql_drv.c Fri Mar 10 10:09:18 2006
+@@ -1392,7 +1392,7 @@ _ds_get_nextuser (DSPAM_CTX * CTX)
virtual_username,
virtual_table);
#else