From: Timo Sirainen Date: Wed, 7 Apr 2010 00:16:30 +0000 (+0300) Subject: lib-master: Crashfix for handling auth master lookup failures. X-Git-Tag: 2.0.beta5~178 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d795594a018d8dcf47b6b569b8ca20e53e275293;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Crashfix for handling auth master lookup failures. --HG-- branch : HEAD --- diff --git a/src/lib-master/master-login.c b/src/lib-master/master-login.c index cc4392fd6e..72a2cce401 100644 --- a/src/lib-master/master-login.c +++ b/src/lib-master/master-login.c @@ -426,7 +426,7 @@ static void master_login_conn_deinit(struct master_login_connection **_conn) if (conn->io != NULL) io_remove(&conn->io); - o_stream_unref(&conn->output); + o_stream_close(conn->output); if (close(conn->fd) < 0) i_error("close(master login) failed: %m"); conn->fd = -1; @@ -442,10 +442,12 @@ static void master_login_conn_unref(struct master_login_connection **_conn) i_assert(conn->refcount > 0); - if (--conn->refcount == 0) { - *_conn = NULL; - i_free(conn); - } + if (--conn->refcount > 0) + return; + + *_conn = NULL; + o_stream_unref(&conn->output); + i_free(conn); } void master_login_stop(struct master_login *login)