From: Timo Sirainen Date: Mon, 22 Feb 2021 14:01:49 +0000 (+0200) Subject: lib-imap-client: Add asserts to make sure running commands always have a timeout X-Git-Tag: 2.3.15~344 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92f7801e6702ecd9ebe9ba757caff252d6ff2ff9;p=thirdparty%2Fdovecot%2Fcore.git lib-imap-client: Add asserts to make sure running commands always have a timeout --- diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c index 0d7a753ec9..3d8887d790 100644 --- a/src/lib-imap-client/imapc-connection.c +++ b/src/lib-imap-client/imapc-connection.c @@ -447,8 +447,10 @@ void imapc_connection_disconnect_full(struct imapc_connection *conn, timeout_remove(&conn->to); conn->reconnecting = reconnecting; - if (conn->state == IMAPC_CONNECTION_STATE_DISCONNECTED) + if (conn->state == IMAPC_CONNECTION_STATE_DISCONNECTED) { + i_assert(array_count(&conn->cmd_wait_list) == 0); return; + } if (conn->client->set.debug) i_debug("imapc(%s): Disconnected", conn->name); @@ -871,6 +873,7 @@ imapc_connection_auth_finish(struct imapc_connection *conn, imapc_auth_ok(conn); + i_assert(array_count(&conn->cmd_wait_list) == 0); timeout_remove(&conn->to); imapc_connection_set_state(conn, IMAPC_CONNECTION_STATE_DONE); imapc_login_callback(conn, reply); @@ -2029,6 +2032,8 @@ static void imapc_command_send_finished(struct imapc_connection *conn, { struct imapc_command *const *cmdp; + i_assert(conn->to != NULL); + if (cmd->idle) conn->idle_plus_waiting = TRUE; cmd->sent = TRUE;