summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2010-01-23 15:48:51 -0500
committerDan Winship <danw@gnome.org>2010-01-23 15:48:51 -0500
commite5491307570a3e4594968e9a307eaaf7dda5d7ab (patch)
treec53aff131fb1212f5803a2beb45ac2a952d7d88c
parent9a24f702cc5c9363a456b5288a1421b94d8d24bc (diff)
downloadlibsoup-e5491307570a3e4594968e9a307eaaf7dda5d7ab.tar.gz
Fix leak in previous commit
-rw-r--r--libsoup/soup-message-server-io.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libsoup/soup-message-server-io.c b/libsoup/soup-message-server-io.c
index a75dde72..bc8a1c1c 100644
--- a/libsoup/soup-message-server-io.c
+++ b/libsoup/soup-message-server-io.c
@@ -119,7 +119,8 @@ handle_partial_get (SoupMessage *msg)
msg->status_code != SOUP_STATUS_OK ||
soup_message_headers_get_encoding (msg->response_headers) !=
SOUP_ENCODING_CONTENT_LENGTH ||
- msg->response_body->length == 0)
+ msg->response_body->length == 0 ||
+ !soup_message_body_get_accumulate (msg->response_body))
return;
/* Oh, and there has to have been a valid Range header on the
@@ -130,11 +131,11 @@ handle_partial_get (SoupMessage *msg)
&ranges, &nranges))
return;
- if (!soup_message_body_get_accumulate (msg->response_body))
- return;
full_response = soup_message_body_flatten (msg->response_body);
- if (!full_response)
+ if (!full_response) {
+ soup_message_headers_free_ranges (msg->request_headers, ranges);
return;
+ }
soup_message_set_status (msg, SOUP_STATUS_PARTIAL_CONTENT);
soup_message_body_truncate (msg->response_body);