summaryrefslogtreecommitdiff
path: root/mailutils/sendmail.c
diff options
context:
space:
mode:
authorAaro Koskinen2013-02-25 00:45:11 +0200
committerDenys Vlasenko2013-03-18 18:45:15 +0100
commit4a732220e907bfed95e87be38cea6e15253a9ad8 (patch)
treeab9e20e598241ff9afb025725cf8366ca5e9a9ad /mailutils/sendmail.c
parent236f222cde03b2594732dacdfe031c7c16e20f4a (diff)
downloadbusybox-4a732220e907bfed95e87be38cea6e15253a9ad8.zip
busybox-4a732220e907bfed95e87be38cea6e15253a9ad8.tar.gz
sendmail: don't add To: header if it already exists
If the message we are sending already has To: header, don't add a new one. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'mailutils/sendmail.c')
-rw-r--r--mailutils/sendmail.c9
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