diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2008-09-28 14:09:36 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2008-09-28 14:09:36 +0100 |
commit | fb98634646e0560bc8f99b56502b6f050742a072 (patch) | |
tree | 3a8ac05ed284a2def7d7de8cc0cd1908f220fd80 /lib/http_client.c | |
parent | b2c062d609becdffc8c8542f68e260ab7b36dbcd (diff) |
Fixed crappy memory management in http_client.
Diffstat (limited to 'lib/http_client.c')
-rw-r--r-- | lib/http_client.c | 19 |
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; } + |