From c825e68f086789fe29c3d221c407a9258c80dccb Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 1 Apr 2004 11:59:06 +0000
Subject: [PATCH] Enforce access/posting requirements when sending mail to a
 sub-board.

---
 src/sbbs3/mailsrvr.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 69a8dc8026..44e5672b23 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -2247,6 +2247,19 @@ static void smtp_thread(void* arg)
 				/* Do external JavaScript processing here? */
 
 				if(subnum!=INVALID_SUB) {	/* Message Base */
+					if(relay_user.number==0)
+						memset(&relay_user,0,sizeof(relay_user));
+
+					if(!chk_ar(&scfg,scfg.grp[scfg.sub[subnum]->grp]->ar, &relay_user)
+						|| !chk_ar(&scfg,scfg.sub[subnum]->ar, &relay_user)
+						|| !chk_ar(&scfg,scfg.sub[subnum]->post_ar, &relay_user)) {
+						lprintf(LOG_WARNING,"%04d !SMTP %s has insufficient access to post on %s"
+							,socket, sender_addr, scfg.sub[subnum]->sname);
+						sockprintf(socket,"550 Insufficient access");
+						subnum=INVALID_SUB;
+						continue;
+					}
+
 					if(rcpt_name[0]==0)
 						strcpy(rcpt_name,"All");
 					smb_hfield_str(&msg, RECIPIENT, rcpt_name);
-- 
GitLab