[git commit] sendmail: don't add To: header if it already exists

Denys Vlasenko vda.linux at googlemail.com
Mon Mar 18 17:45:15 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=4a732220e907bfed95e87be38cea6e15253a9ad8
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

If the message we are sending already has To: header, don't add a new one.

Signed-off-by: Aaro Koskinen <aaro.koskinen at iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 mailutils/sendmail.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
index 22f735b..36a1b97 100644
--- a/mailutils/sendmail.c
+++ b/mailutils/sendmail.c
@@ -187,6 +187,7 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 		HDR_BCC,
 	} last_hdr = 0;
 	int check_hdr;
+	int has_to = 0;
 
 	enum {
 	//--- standard options
@@ -348,8 +349,10 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 
 		// analyze headers
 		// To: or Cc: headers add recipients
+		check_hdr = 0 == strncasecmp("To:", s, 3);
+		has_to |= check_hdr;
 		if (opts & OPT_t) {
-			if (0 == strncasecmp("To:", s, 3) || 0 == strncasecmp("Bcc:" + 1, s, 3)) {
+			if (check_hdr || 0 == strncasecmp("Bcc:" + 1, s, 3)) {
 				rcptto_list(s+3);
 				last_hdr = HDR_TOCC;
 				goto addheader;
@@ -391,7 +394,9 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv)
 				rcptto(t);
 				//if (MAX_HEADERS && ++nheaders >= MAX_HEADERS)
 				//	goto bail;
-				llist_add_to_end(&list, xasprintf("To: %s", t));
+				if (!has_to)
+					llist_add_to_end(&list,
+							xasprintf("To: %s", t));
 				argv++;
 			}
 			// enter "put message" mode


More information about the busybox-cvs mailing list