From 2f3009df68b46b7a0ff20eb9cae0c4801c017ddc Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sun, 8 Apr 2007 02:49:24 +0000
Subject: [PATCH] Some anti-SPAM protection for the list server.

---
 exec/listserver.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/exec/listserver.js b/exec/listserver.js
index 01d2379add..7c9e78a580 100644
--- a/exec/listserver.js
+++ b/exec/listserver.js
@@ -77,6 +77,15 @@ if(mailbase.open()==false) {
 /* Inbound message from SMTP Server? */
 if(this.recipient_list_filename!=undefined) {	
 
+	log("reverse_path = " + reverse_path);
+	if(reverse_path=='' || reverse_path=='<>') {
+		log(LOG_WARNING,"ListServer: No reverse path");
+		exit();
+	}
+	if(reserve_path=='<' + listserver_addrses + '>') {
+		log(LOG_WARNING,"ListServer: Invalid reverse path (loop?)");
+		exit();
+	}
 	var error_file = new File(processing_error_filename);
 	if(!error_file.open("w")) {
 		log(LOG_ERR,format("ListServer: !ERROR %d opening processing error file: %s"
@@ -107,6 +116,13 @@ if(this.recipient_list_filename!=undefined) {
 
 	var header = parse_msg_header(msgtxt);
 	header = convert_msg_header(header);
+
+	if(header.from_net_addr == listserver_address) {
+		error_file.writeln(log(LOG_ERR,format("ListServer: refusing to process message from %s (loop?)"
+			,header.from_net_addr)));
+		exit();
+	}
+
 	var body = get_msg_body(msgtxt);
 
 	var r;
-- 
GitLab