From e6a39720296da421bd88cc2b8ed7d9fff1aaddab Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 9 Jan 2009 05:45:16 +0000
Subject: [PATCH] Take care of the ret.score == 'undefined' scenario. Always
 log the details of the processing, including the tests (if returned).

---
 exec/spamc.js | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/exec/spamc.js b/exec/spamc.js
index faf854870a..3206c56729 100644
--- a/exec/spamc.js
+++ b/exec/spamc.js
@@ -45,24 +45,28 @@ function main()
 
 	var msg=new SPAMC_Message(message_text_filename, address, tcp_port, user);
 	if(msg.error != undefined) {
-		log(LOG_ERR,"spamc: !ERROR "+msg.error);
+		log(LOG_ERR,"SPAMC: !ERROR "+msg.error);
 		return;
 	}
 	msg.debug=true;
 	var ret=msg.process();
 	if(ret.warning != undefined)
-		log(LOG_WARNING, "spamc: WARNING "+ret.warning);
+		log(LOG_WARNING, "SPAMC: WARNING "+ret.warning);
 	if(ret.error != undefined) {
-		log(LOG_ERR,"spamc: !ERROR "+ret.error);
+		log(LOG_ERR,"SPAMC: !ERROR "+ret.error);
 		return;
 	}
 
-	log(LOG_INFO, "spamc: score: " + ret.score + ' / ' + ret.threshold);
+	var details = 'score: ' + ret.score + ' / ' + ret.threshold;
+	if(ret.symbols && ret.symbols.length)
+		details += ', tests: ' + ret.symbols;
+
+	log(LOG_INFO, "SPAMC: " + details);
 
-	if(!reject_threshold || ret.score < reject_threshold) {
+	if(!reject_threshold || isNaN(ret.score) || ret.score < reject_threshold) {
 		var msg_file = new File(message_text_filename);
 		if(!msg_file.open("w")) {
-			log(LOG_ERR,format("spamc: !ERROR %d opening message text file: %s"
+			log(LOG_ERR,format("SPAMC: !ERROR %d opening message text file: %s"
 				,msg_file.error, message_text_filename));
 			return;
 		}
@@ -71,17 +75,14 @@ function main()
 		return;
 	}
 
-	log(LOG_INFO, "spamc: rejecting SPAM with SMTP error");
+	log(LOG_INFO, "SPAMC: rejecting SPAM with SMTP error");
 	var error_file = new File(processing_error_filename);
 	if(!error_file.open("w")) {
-		log(LOG_ERR,format("spamc: !ERROR %d opening processing error file: %s"
+		log(LOG_ERR,format("SPAMC: !ERROR %d opening processing error file: %s"
 			,error_file.error, processing_error_filename));
 		return;
 	}
-	var rejection = ret.score + ' / ' + ret.threshold;
-	if(ret.symbols && ret.symbols.length)
-		rejection += ' ' + ret.symbols;
-	error_file.writeln("SpamAssassin rejected your mail: " + rejection);
+	error_file.writeln("SpamAssassin rejected your mail: " + details);
 	error_file.close();
 }
 
-- 
GitLab