[GNOME-my]PLEASE TEST: em-junkfilter.c patch for evo 1.5.1



After a few days of testing, it seems I missed some more strings that
were not quoted, especially for the important testing part. Failure of
these lines, is resulting in all reports marked as clean.

Coders, have a look at the file, and see if you can make a better patch
(easy), or nitpick mine, to see if I've missed anything.

Non-coders.. just try applying the patch and test that it compiles and
that spamassassin is working. Applying patch..

cd evolution-1.5.1
patch < patch_file

then ./configure and install as usual

I'm compiling it now, so I haven't tested it yet.

--- mail/em-junk-filter.c.orig	Thu Nov 13 19:33:26 2003
+++ mail/em-junk-filter.c	Mon Jan 12 07:32:17 2004
@@ -174,7 +174,7 @@
 	int retval;
 
 	d(fprintf (stderr, "test if spamd is running (port %d)\n", port);)
-	sac_args [2] = port > 0  ? g_strdup_printf ("spamc -x -p %d", port) :
g_strdup_printf ("spamc -x");
+	sac_args [2] = port > 0  ? g_strdup_printf ("'spamc -x -p %d'",
port) : g_strdup_printf ("spamc -x");
 
 	retval = pipe_to_sa (NULL, "From test 127 0 0 1", 3, sac_args) == 0;
 	g_free (sac_args [2]);
@@ -189,7 +189,7 @@
 	static gchar *args [3] = {
 		"/bin/sh",
 		"-c",
-		"spamassassin --version"
+		"'spamassassin --version'" /* quoted command string */
 	};
 
 	if (pipe_to_sa (NULL, NULL, 3, args))
@@ -225,7 +225,7 @@
 				for (i = 0; i < NPORTS; i ++) {
 					d(fprintf (stderr, "trying to run spamd at port %d\n", port));
 
-					sad_args [2] = g_strdup_printf ("spamd --port %d --local --
daemonize", port);
+					sad_args [2] = g_strdup_printf ("'spamd --port %d --local --
daemonize'", port); /* quote command string */
 					if (!pipe_to_sa (NULL, NULL, 3, sad_args)) {
 						g_free (sad_args [2]);
 						em_junk_sa_use_spamc = TRUE;
@@ -272,17 +272,19 @@
 
 	args [2] = em_junk_sa_use_spamc
 		? (em_junk_sa_spamd_port == -1
-		   ? g_strdup ("spamc -c")         /* Exit with a non-zero exit code
if the
+		   ? g_strdup ("'spamc -c'")         /* Exit with a non-zero exit
code if the
 						      tested message was junk */
-		   : g_strdup_printf ("spamc"
+		   : g_strdup_printf ("'"
+                      "spamc"
 				      " -c"        /* Exit with a non-zero exit code if the
 						      tested message was junk */
-				      " -p %d", em_junk_sa_spamd_port))
-		: g_strdup ("spamassassin"
+				      " -p %d'", em_junk_sa_spamd_port))
+		: g_strdup ("'spamassassin"
 			    " --exit-code"         /* Exit with a non-zero exit code if the
 						      tested message was junk */
-			    " --local");           /* Local tests only (no online tests) */
-
+			    " --local"  /* Local tests only (no online tests) */
+                "'" 
+                );           
 	retval = pipe_to_sa (msg, NULL, 3, args);
 
 	g_free (args [2]);
@@ -296,11 +298,13 @@
 	static gchar *args [3] = {
 		"/bin/sh",
 		"-c",
+        "'"                    /* begin quote */
 		"sa-learn"
 		" --no-rebuild"        /* do not rebuild db */
 		" --spam"              /* report junk */
 		" --single"            /* single message */
 		" --local"             /* local only */
+        "'"                    /* end quote */
 	};
 
 	d(fprintf (stderr, "em_junk_sa_report_junk\n"));
@@ -315,11 +319,13 @@
 	static gchar *args [3] = {
 		"/bin/sh",
 		"-c",
+        "'"                    /* begin quote */
 		"sa-learn"
 		" --no-rebuild"        /* do not rebuild db */
 		" --ham"               /* report notjunk */
 		" --single"            /* single message */
 		" --local"             /* local only */
+        "'"                    /* end quote */
 	};
 
 	d(fprintf (stderr, "em_junk_sa_report_notjunk\n"));
@@ -334,9 +340,11 @@
 	static gchar *args [3] = {
 		"/bin/sh",
 		"-c",
+        "'"                    /* begin quote */
 		"sa-learn"
 		" --rebuild"           /* do not rebuild db */
 		" --local"             /* local only */
+        "'"                    /* end quote */
 	};
 
 	d(fprintf (stderr, "em_junk_sa_commit_reports\n");)

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]