From: Timo Sirainen Date: Mon, 12 Dec 2011 06:36:25 +0000 (+0200) Subject: imapc: Don't crash if we receive tagged BAD reply. X-Git-Tag: 2.1.rc2~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe4691f2b34d339d9b372801628a67f854db3298;p=thirdparty%2Fdovecot%2Fcore.git imapc: Don't crash if we receive tagged BAD reply. --- diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c index 244279f272..ff7dea43f3 100644 --- a/src/lib-imap-client/imapc-connection.c +++ b/src/lib-imap-client/imapc-connection.c @@ -951,12 +951,13 @@ static int imapc_connection_input_tagged(struct imapc_connection *conn) unsigned int i, count; char *line, *linep; const char *p; - struct imap_parser *parser; struct imapc_command_reply reply; line = i_stream_next_line(conn->input); if (line == NULL) return 0; + /* make sure reply texts stays valid if input stream gets freed */ + line = t_strdup_noconst(line); memset(&reply, 0, sizeof(reply)); @@ -1033,12 +1034,7 @@ static int imapc_connection_input_tagged(struct imapc_connection *conn) } imapc_connection_input_reset(conn); - - parser = conn->parser; - imap_parser_ref(parser); imapc_command_reply_free(cmd, &reply); - imap_parser_unref(&parser); - imapc_command_send_more(conn); return 1; }