From 373dca2969df5c299350f5dbd518bdba1757bb5d Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Windows)" <rob@synchro.net>
Date: Tue, 30 May 2023 17:18:52 -0700
Subject: [PATCH] Truncate trailing whitespace from FidoNet message header
 fields

It's unclear whether trailing whitespace is supposed to be significant or not
(FidoNet specs don't say), but I don't see any reason why "John Doe" and
"John Doe " should be considered unique senders or recipients. Remove any
trailing whitespace from message subjects too.

This change makes the trailing whitespace truncation in SMB hash functions
unnecessary (at least for SBBSecho-imported messages), but most (all?) other
message transports don't allow for this nonsense in the first place.
---
 src/sbbs3/sbbsecho.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 469800dca4..fcf7cc7562 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -2343,8 +2343,11 @@ bool fread_fmsghdr(fmsghdr_t* hdr, FILE* fp)
 	if(fread(hdr, sizeof(fmsghdr_t), 1, fp) != 1)
 		return false;
 	TERMINATE(hdr->from);
+	truncsp(hdr->from);
 	TERMINATE(hdr->to);
+	truncsp(hdr->to);
 	TERMINATE(hdr->subj);
+	truncsp(hdr->subj);
 	TERMINATE(hdr->time);
 	return true;
 }
@@ -5325,6 +5328,7 @@ char* freadstr(FILE* fp, char* str, size_t maxlen)
 		return NULL;
 
 	str[maxlen-1]=0;	/* Force terminator */
+	truncsp(str);
 
 	return(str);
 }
-- 
GitLab