diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-08-22 15:53:16 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-08-22 15:53:16 +0200 |
commit | 3505e38bd1e5714fa1203e6752c573861aab8521 (patch) | |
tree | 6c77967c5594bed998a9781306719b49402ae9bc | |
parent | e837a0dbbebf4229306df98fe9ee3b9bb30630c4 (diff) | |
download | busybox-w32-3505e38bd1e5714fa1203e6752c573861aab8521.tar.gz busybox-w32-3505e38bd1e5714fa1203e6752c573861aab8521.tar.bz2 busybox-w32-3505e38bd1e5714fa1203e6752c573861aab8521.zip |
sendmail: fix segfault if "To: email1,email2" is used
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | mailutils/sendmail.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c index f440e6319..defbd9552 100644 --- a/mailutils/sendmail.c +++ b/mailutils/sendmail.c | |||
@@ -189,8 +189,9 @@ static void rcptto(const char *s) | |||
189 | // send to a list of comma separated addresses | 189 | // send to a list of comma separated addresses |
190 | static void rcptto_list(const char *list) | 190 | static void rcptto_list(const char *list) |
191 | { | 191 | { |
192 | char *str = xstrdup(list); | 192 | char *free_me = xstrdup(list); |
193 | char *s = str; | 193 | char *str = free_me; |
194 | char *s = free_me; | ||
194 | char prev = 0; | 195 | char prev = 0; |
195 | int in_quote = 0; | 196 | int in_quote = 0; |
196 | 197 | ||
@@ -208,7 +209,7 @@ static void rcptto_list(const char *list) | |||
208 | } | 209 | } |
209 | if (prev != ',') | 210 | if (prev != ',') |
210 | rcptto(angle_address(str)); | 211 | rcptto(angle_address(str)); |
211 | free(str); | 212 | free(free_me); |
212 | } | 213 | } |
213 | 214 | ||
214 | int sendmail_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 215 | int sendmail_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |