From ad5130b3afda4cf30e6272d96d818f84d3ae4e55 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 5 Apr 2010 08:18:25 +0300 Subject: [PATCH] lmtp: Crashfix for handling invalid MAIL/RCPT commands. --HG-- branch : HEAD --- src/lmtp/commands.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/lmtp/commands.c b/src/lmtp/commands.c index faf73076c8..5cdfafa13a 100644 --- a/src/lmtp/commands.c +++ b/src/lmtp/commands.c @@ -85,19 +85,14 @@ int cmd_mail(struct client *client, const char *args) } argv = t_strsplit(args, " "); - if (argv == NULL) - addr = ""; - else { - addr = argv[0]; - argv++; - } + addr = argv[0] == NULL ? "" : argv[0]; len = strlen(addr); if (strncasecmp(addr, "FROM:<", 6) != 0 || addr[len-1] != '>') { client_send_line(client, "501 5.5.4 Invalid parameters"); return 0; } - for (; *argv != NULL; argv++) { + for (argv++; *argv != NULL; argv++) { if (strcasecmp(*argv, "BODY=7BIT") == 0) client->mail_body_7bit = TRUE; else if (strcasecmp(*argv, "BODY=8BITMIME") == 0) @@ -346,17 +341,13 @@ int cmd_rcpt(struct client *client, const char *args) } argv = t_strsplit(args, " "); - if (argv == NULL) - arg = ""; - else { - arg = argv[0]; - argv++; - } + arg = argv[0] == NULL ? "" : argv[0]; len = strlen(arg); if (strncasecmp(arg, "TO:<", 4) != 0 || arg[len-1] != '>') { client_send_line(client, "501 5.5.4 Invalid parameters"); return 0; } + argv++; memset(&rcpt, 0, sizeof(rcpt)); address = lmtp_unescape_address(t_strndup(arg + 4, len - 5)); -- 2.47.3