From: Aki Tuomi Date: Mon, 16 Jan 2017 07:37:05 +0000 (+0200) Subject: dict-sql: Fix flushing X-Git-Tag: 2.3.0.rc1~2305 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fb6734cf234cb513864c27a1936958a26a45aa6c;p=thirdparty%2Fdovecot%2Fcore.git dict-sql: Fix flushing Remove flushing from set, and add it to unset. Fixes signal 11 crash caused by infinite recursion. --- diff --git a/src/lib-dict/dict-sql.c b/src/lib-dict/dict-sql.c index 4ea53e648c..f56992c004 100644 --- a/src/lib-dict/dict-sql.c +++ b/src/lib-dict/dict-sql.c @@ -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) {