[FFmpeg-cvslog] r14923 - in trunk/libavformat: tcp.c udp.c
rbultje
subversion
Sat Aug 23 19:39:57 CEST 2008
Author: rbultje
Date: Sat Aug 23 19:39:56 2008
New Revision: 14923
Log:
Fix memleak on some OSes in case network initialization fails. See
"[PATCH] tcp.c/udp.c memleak?" for discussion.
Modified:
trunk/libavformat/tcp.c
trunk/libavformat/udp.c
Modified: trunk/libavformat/tcp.c
==============================================================================
--- trunk/libavformat/tcp.c (original)
+++ trunk/libavformat/tcp.c Sat Aug 23 19:39:56 2008
@@ -41,6 +41,9 @@ static int tcp_open(URLContext *h, const
socklen_t optlen;
char proto[1024],path[1024],tmp[1024];
+ if(!ff_network_init())
+ return AVERROR(EIO);
+
url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname),
&port, path, sizeof(path), uri);
if (strcmp(proto,"tcp")) goto fail;
@@ -55,9 +58,6 @@ static int tcp_open(URLContext *h, const
if (port <= 0 || port >= 65536)
goto fail;
- if(!ff_network_init())
- return AVERROR(EIO);
-
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(port);
if (resolve_host(&dest_addr.sin_addr, hostname) < 0)
Modified: trunk/libavformat/udp.c
==============================================================================
--- trunk/libavformat/udp.c (original)
+++ trunk/libavformat/udp.c Sat Aug 23 19:39:56 2008
@@ -348,6 +348,9 @@ static int udp_open(URLContext *h, const
is_output = (flags & URL_WRONLY);
+ if(!ff_network_init())
+ return AVERROR(EIO);
+
s = av_mallocz(sizeof(UDPContext));
if (!s)
return AVERROR(ENOMEM);
@@ -380,9 +383,6 @@ static int udp_open(URLContext *h, const
udp_set_remote_url(h, uri);
}
- if(!ff_network_init())
- return AVERROR(EIO);
-
if (s->is_multicast && !(h->flags & URL_WRONLY))
s->local_port = port;
udp_fd = udp_socket_create(s, &my_addr, &len);
More information about the ffmpeg-cvslog
mailing list