]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: cmd-append - Fix assertion panic occurring upon invalid 'REPLACE 0' command main
authorStephan Bosch <stephan.bosch@open-xchange.com>
Sun, 29 Mar 2026 18:03:40 +0000 (20:03 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 9 Apr 2026 10:22:27 +0000 (10:22 +0000)
Panic was:
Panic: file mail-cache-lookup.c: line 354 (mail_cache_field_exists): assertion failed: (seq > 0)

src/imap/cmd-append.c

index cf1ca6cd8eb477167992a49809812353b8c673f7..f5fc0eb6662e2161eb79339b2b66c5446b1eb0d7 100644 (file)
@@ -1159,7 +1159,8 @@ static bool cmd_append_full(struct client_command_context *cmd, bool replace)
        ctx->started = ioloop_time;
        ctx->utf8_accept = (client_enabled_mailbox_features(cmd->client) &
                            MAILBOX_FEATURE_UTF8ACCEPT) != 0;
-       if (replace && !cmd->uid && (seqnum > client->messages_count)) {
+       if (replace && !cmd->uid &&
+           (seqnum == 0 || seqnum > client->messages_count)) {
                client_send_tagline(cmd,
                        "BAD Invalid message sequence.");
                ctx->failed = TRUE;