changeset 16417:be6bbd50ec20

memleak fixes when invalid http url specified.
author reimar
date Tue, 06 Sep 2005 21:00:57 +0000
parents 42ad241f6e8c
children 264b3b909850
files libmpdemux/http.c libmpdemux/network.c
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/http.c	Tue Sep 06 20:50:10 2005 +0000
+++ b/libmpdemux/http.c	Tue Sep 06 21:00:57 2005 +0000
@@ -875,7 +875,7 @@
 	stream->streaming_ctrl->bandwidth = network_bandwidth;
 	url = url_new(stream->url);
 	stream->streaming_ctrl->url = check4proxies(url);
-	//url_free(url);
+	url_free(url);
 	
 	mp_msg(MSGT_OPEN, MSGL_INFO, "STREAM_HTTP(1), URL: %s\n", stream->url);
 	seekable = http_streaming_start(stream, file_format);
--- a/libmpdemux/network.c	Tue Sep 06 20:50:10 2005 +0000
+++ b/libmpdemux/network.c	Tue Sep 06 21:00:57 2005 +0000
@@ -417,7 +417,7 @@
 	http_set_field( http_hdr, "Connection: close");
 	http_add_basic_authentication( http_hdr, url->username, url->password );
 	if( http_build_request( http_hdr )==NULL ) {
-		return -1;
+		goto err_out;
 	}
 
 	if( proxy ) {
@@ -429,19 +429,22 @@
 		fd = connect2Server( server_url->hostname, server_url->port,1 );
 	}
 	if( fd<0 ) {
-		return -1; 
+		goto err_out;
 	}
 	mp_msg(MSGT_NETWORK,MSGL_DBG2,"Request: [%s]\n", http_hdr->buffer );
 	
 	ret = send( fd, http_hdr->buffer, http_hdr->buffer_size, 0 );
 	if( ret!=(int)http_hdr->buffer_size ) {
 		mp_msg(MSGT_NETWORK,MSGL_ERR,"Error while sending HTTP request: didn't sent all the request\n");
-		return -1;
+		goto err_out;
 	}
 	
 	http_free( http_hdr );
 
 	return fd;
+err_out:
+	http_free(http_hdr);
+	return -1;
 }
 
 HTTP_header_t *