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;  } + | 
