From: Timo Sirainen Date: Tue, 27 Dec 2022 22:38:57 +0000 (-0500) Subject: dict: Handle each dict iteration flush in separate data stack frame X-Git-Tag: 2.4.0~3197 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a450cf91da2e34797bfa74718cb727e7431abfc7;p=thirdparty%2Fdovecot%2Fcore.git dict: Handle each dict iteration flush in separate data stack frame --- diff --git a/src/dict/dict-commands.c b/src/dict/dict-commands.c index d4a3f99df1..051e313f19 100644 --- a/src/dict/dict-commands.c +++ b/src/dict/dict-commands.c @@ -682,7 +682,14 @@ static bool dict_connection_cmds_try_output_more(struct dict_connection *conn) array_foreach_elem(&conn->cmds, cmd) { if (cmd->iter == NULL) { /* not an iterator */ - } else if (cmd_iterate_flush(cmd) == 0) { + continue; + } + + int ret; + T_BEGIN { + ret = cmd_iterate_flush(cmd); + } T_END; + if (ret == 0) { /* unfinished */ } else { dict_connection_cmd_try_flush(&cmd);