From 79c0ad6b0b968bff5e1090360fa682f212f0afab Mon Sep 17 00:00:00 2001 From: Alex Graveley Date: Wed, 17 Oct 2001 18:03:22 +0000 Subject: Add some bounds checking. 2001-10-17 Alex Graveley * src/libsoup/soup-transfer.c (remove_block_at_index): Add some bounds checking. * src/libsoup/soup-queue.c (soup_queue_connect_cb): Handle iochannel creation failure which can happen when using SSL. --- libsoup/soup-queue.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'libsoup/soup-queue.c') diff --git a/libsoup/soup-queue.c b/libsoup/soup-queue.c index 3cea04e4..b26f71ba 100644 --- a/libsoup/soup-queue.c +++ b/libsoup/soup-queue.c @@ -433,7 +433,28 @@ soup_queue_connect_cb (SoupContext *ctx, } channel = soup_connection_get_iochannel (conn); - overwrt = req->priv->msg_flags & SOUP_MESSAGE_OVERWRITE_CHUNKS; + if (!channel) { + gchar *phrase; + + if (proto == SOUP_PROTOCOL_HTTPS) + phrase = "Unable to create secure data channel"; + else + phrase = "Unable to create data channel"; + + if (ctx != req->context) + soup_message_set_error_full ( + req, + SOUP_ERROR_CANT_CONNECT_PROXY, + phrase); + else + soup_message_set_error_full ( + req, + SOUP_ERROR_CANT_CONNECT, + phrase); + + soup_message_issue_callback (req); + return; + } if (req->priv->req_header) { g_string_free (req->priv->req_header, TRUE); @@ -451,6 +472,8 @@ soup_queue_connect_cb (SoupContext *ctx, soup_queue_error_cb, req); + overwrt = req->priv->msg_flags & SOUP_MESSAGE_OVERWRITE_CHUNKS; + req->priv->read_tag = soup_transfer_read (channel, overwrt, -- cgit v1.2.1