]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-redis: Fix error handling for failed synchronous commits
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 20 Jun 2023 12:35:34 +0000 (15:35 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Mon, 24 Jul 2023 08:48:17 +0000 (08:48 +0000)
An error was logged if a synchronous commit failed, but the commit callback
was called with success instead of failure.

src/lib-dict/dict-redis.c

index 94ba301aa89d70521d1c506b90852b2229da24d1..82dcf195e783714e3b7cce34b05fa33dd2d475c7 100644 (file)
@@ -700,7 +700,9 @@ redis_transaction_commit(struct dict_transaction_context *_ctx, bool async,
                        i_free(ctx);
                        return;
                }
-               (void)redis_wait(dict);
+               ctx->error = i_strdup(redis_wait(dict));
+               if (ctx->error != NULL)
+                       result.ret = DICT_COMMIT_RET_FAILED;
        } else {
                callback(&result, context);
        }