]> git.ipfire.org Git - thirdparty/dovecot/core.git/commit
dict-client: Fix potential iterator double-free
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 26 May 2020 16:09:38 +0000 (19:09 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 24 Jun 2020 17:04:44 +0000 (17:04 +0000)
commitf5790ecaa62ca01391430417d8be502f02fb4781
tree5fdb45b589a3abe737b38412d10bd587257f032d
parented47536cf26331f58fd3b8445bbceb0edfa08894
dict-client: Fix potential iterator double-free

client_dict_iterate_free() didn't really work properly, because of:

ctx->finished = TRUE;
client_dict_iter_api_callback(ctx, cmd, extra_args);
client_dict_iterate_free(ctx);

Here finished=TRUE is set first (and it needs to be set first). Afterwards
client_dict_iter_api_callback() internally calls
client_dict_iterate_deinit(), which can end up freeing the iterator.
src/lib-dict/dict-client.c