From: Timo Sirainen Date: Mon, 12 Jun 2017 09:07:52 +0000 (+0300) Subject: imapc: Check for auth failures when saving messages X-Git-Tag: 2.2.31.rc1~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=67a01e6b3a4669d42420aeb9eb7d12ea1397449e;p=thirdparty%2Fdovecot%2Fcore.git imapc: Check for auth failures when saving messages First, don't even attempt an APPEND if we've already seen an auth failure. Second, if APPEND does fail because of auth error, set the correct error to storage. --- diff --git a/src/lib-storage/index/imapc/imapc-save.c b/src/lib-storage/index/imapc/imapc-save.c index e308c29889..ab6bd63a9c 100644 --- a/src/lib-storage/index/imapc/imapc-save.c +++ b/src/lib-storage/index/imapc/imapc-save.c @@ -66,6 +66,9 @@ int imapc_save_begin(struct mail_save_context *_ctx, struct istream *input) i_assert(ctx->fd == -1); + if (imapc_storage_client_handle_auth_failure(ctx->mbox->storage->client)) + return -1; + ctx->fd = imapc_client_create_temp_fd(ctx->mbox->storage->client->client, &path); if (ctx->fd == -1) { @@ -171,6 +174,8 @@ static void imapc_save_callback(const struct imapc_command_reply *reply, imapc_save_appenduid(ctx->ctx, reply, &uid); imapc_save_add_to_index(ctx->ctx, uid); ctx->ret = 0; + } else if (imapc_storage_client_handle_auth_failure(ctx->ctx->mbox->storage->client)) { + ctx->ret = -1; } else if (reply->state == IMAPC_COMMAND_STATE_NO) { imapc_copy_error_from_reply(ctx->ctx->mbox->storage, MAIL_ERROR_PARAMS, reply);