]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Don't allow empty CATENATE () list.
authorTimo Sirainen <tss@iki.fi>
Thu, 2 May 2013 15:18:26 +0000 (18:18 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 2 May 2013 15:18:26 +0000 (18:18 +0300)
src/imap/cmd-append.c

index b825692c5630c6287903e6577b10c8e958e537b4..a7e2b314d2e75207904ca550892f279b3bee0698 100644 (file)
@@ -586,6 +586,10 @@ cmd_append_handle_args(struct client_command_context *cmd,
        if (cat_list == NULL) {
                /* normal APPEND */
                return 1;
+       } else if (cat_list->type == IMAP_ARG_EOL) {
+               /* zero parts */
+               client_send_command_error(cmd, "Empty CATENATE list.");
+               return -1;
        } else if ((ret = cmd_append_catenate(cmd, cat_list, nonsync_r)) < 0) {
                /* invalid parameters, abort immediately */
                return -1;
@@ -734,6 +738,8 @@ static bool cmd_append_parse_new_msg(struct client_command_context *cmd)
        ret = cmd_append_handle_args(cmd, args, &nonsync);
        if (ret < 0) {
                /* invalid parameters, abort immediately */
+               if (ctx->catenate)
+                       client->input_skip_line = TRUE;
                cmd_append_finish(ctx);
                return TRUE;
        }