Date: Sat, 10 Jan 2004 00:36:17 +0800 From: Khairil Yusof <kaeru@pd.jaring.my> To: gnome@freebsd.org Subject: Patch for spamassasin filter for evo 1.5.1 Message-ID: <1073666176.95211.7.camel@wolverine.home.net>
next in thread | raw e-mail | index | archive | help
sh command strings for evo's spamassassin junk filter, are not quoted, which breaks the junk filter. This patch tries to quote the complete command string, allowing the commands to run properly. I'm not a C programmer, so please check, to see if I did anything wrong or whether it can be improved. I've tested that it compiles and runs, and it 'seems' to be working so far. If it looks ok, I'll file the bug and patch at ximian's bugzilla. Thanks to marcus for pointing me to the source file, that's causing the problems. -- snip --- --- mail/em-junk-filter.c.orig Thu Nov 13 19:33:26 2003 +++ mail/em-junk-filter.c Fri Jan 9 15:49:44 2004 @@ -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; @@ -274,15 +274,17 @@ ? (em_junk_sa_spamd_port == -1 ? 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" " --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");)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1073666176.95211.7.camel>