Mercurial > dovecot > original-hg > dovecot-2.2
changeset 16756:7fc1dcfc5e3a
lib-http: http-client: Fixed segfault caused by earlier improvement of connection output locking.
Segfault was triggered when an aborted request received a response.
author | Stephan Bosch <stephan@rename-it.nl> |
---|---|
date | Mon, 16 Sep 2013 01:02:03 +0300 |
parents | bcaee8677d7d |
children | a114a8bfce61 |
files | src/lib-http/http-client-connection.c |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-http/http-client-connection.c Sun Sep 15 03:56:47 2013 +0300 +++ b/src/lib-http/http-client-connection.c Mon Sep 16 01:02:03 2013 +0300 @@ -575,6 +575,10 @@ "Got %u response for request %s", response.status, http_client_request_label(req)); + /* make sure connection output is unlocked if 100-continue failed */ + if (req->payload_sync && !conn->payload_continue) + conn->output_locked = FALSE; + /* remove request from queue */ array_delete(&conn->request_wait_list, 0, 1); aborted = (req->state == HTTP_REQUEST_STATE_ABORTED); @@ -582,8 +586,6 @@ http_client_request_unref(&req); conn->close_indicated = response.connection_close; - if (req->payload_sync && !conn->payload_continue) - conn->output_locked = FALSE; if (!aborted) { if (response.status == 417 && req->payload_sync) {