changeset 16572:20a0595e6e5d

lib-http: Don't crash if payload stream is referenced by caller after its connection is freed.
author Timo Sirainen <tss@iki.fi>
date Thu, 27 Jun 2013 20:37:46 +0300
parents 9fd54d123e22
children e405105a0c24
files src/lib-http/http-client-connection.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-http/http-client-connection.c	Thu Jun 27 20:32:01 2013 +0300
+++ b/src/lib-http/http-client-connection.c	Thu Jun 27 20:37:46 2013 +0300
@@ -896,6 +896,12 @@
 	conn->closing = TRUE;
 	conn->connected = FALSE;
 
+	if (conn->incoming_payload != NULL) {
+		/* the stream is still accessed by lib-http caller. */
+		i_stream_remove_destroy_callback(conn->incoming_payload,
+						 http_client_payload_destroyed);
+	}
+
 	connection_disconnect(&conn->conn);
 
 	/* abort all pending requests */