From fb98634646e0560bc8f99b56502b6f050742a072 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 28 Sep 2008 14:09:36 +0100 Subject: Fixed crappy memory management in http_client. --- lib/http_client.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'lib/http_client.c') 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; } + -- cgit v1.2.3