aboutsummaryrefslogtreecommitdiffstats
path: root/lib/http_client.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2008-09-28 14:09:36 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2008-09-28 14:09:36 +0100
commitfb98634646e0560bc8f99b56502b6f050742a072 (patch)
tree3a8ac05ed284a2def7d7de8cc0cd1908f220fd80 /lib/http_client.c
parentb2c062d609becdffc8c8542f68e260ab7b36dbcd (diff)
Fixed crappy memory management in http_client.
Diffstat (limited to 'lib/http_client.c')
-rw-r--r--lib/http_client.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/http_client.c b/lib/http_client.c
index b00fcf98..aae5645b 100644
--- a/lib/http_client.c
+++ b/lib/http_client.c
@@ -58,8 +58,8 @@ void *http_dorequest( char *host, int port, int ssl, char *request, http_input_f
if( error )
{
- g_free( req );
- return( NULL );
+ http_free( req );
+ return NULL;
}
req->func = func;
@@ -159,10 +159,7 @@ error:
req->status_string = g_strdup( "Error while writing HTTP request" );
req->func( req );
-
- g_free( req->request );
- g_free( req );
-
+ http_free( req );
return FALSE;
}
@@ -443,11 +440,15 @@ cleanup:
closesocket( req->fd );
req->func( req );
-
+ http_free( req );
+ return FALSE;
+}
+
+void http_free( struct http_request *req )
+{
g_free( req->request );
g_free( req->reply_headers );
g_free( req->status_string );
g_free( req );
-
- return FALSE;
}
+