]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-sql: Fix flushing
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 16 Jan 2017 07:37:05 +0000 (09:37 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 16 Jan 2017 07:38:42 +0000 (09:38 +0200)
Remove flushing from set, and add it to unset. Fixes
signal 11 crash caused by infinite recursion.

src/lib-dict/dict-sql.c

index 4ea53e648c5b95d5f6b081ffe2780febc6ff4fce..f56992c004a7280003a4a655b42132063737ff70 100644 (file)
@@ -1064,11 +1064,6 @@ static void sql_dict_set_real(struct dict_transaction_context *_ctx,
                return;
        }
 
-       if (ctx->prev_inc_map != NULL)
-               sql_dict_prev_inc_flush(ctx);
-       if (ctx->prev_set_map != NULL)
-               sql_dict_prev_set_flush(ctx);
-
        field.map = map;
        field.value = value;
 
@@ -1103,6 +1098,8 @@ static void sql_dict_unset(struct dict_transaction_context *_ctx,
 
        if (ctx->prev_inc_map != NULL)
                sql_dict_prev_inc_flush(ctx);
+       if (ctx->prev_set_map != NULL)
+               sql_dict_prev_set_flush(ctx);
 
        map = sql_dict_find_map(dict, key, &values);
        if (map == NULL) {