summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/tcp.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/libavformat/tcp.c b/libavformat/tcp.c
index 9191960ca7..470d0ce8d1 100644
--- a/libavformat/tcp.c
+++ b/libavformat/tcp.c
@@ -49,12 +49,6 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
if (strcmp(proto,"tcp")) goto fail;
if ((q = strchr(hostname,'@'))) { strcpy(tmp,q+1); strcpy(hostname,tmp); }
- s = av_malloc(sizeof(TCPContext));
- if (!s)
- return AVERROR(ENOMEM);
- h->priv_data = s;
- h->is_streamed = 1;
-
if (port <= 0 || port >= 65536)
goto fail;
@@ -100,6 +94,11 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
if (ret != 0)
goto fail;
}
+ s = av_malloc(sizeof(TCPContext));
+ if (!s)
+ return AVERROR(ENOMEM);
+ h->priv_data = s;
+ h->is_streamed = 1;
s->fd = fd;
return 0;
@@ -108,7 +107,6 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
fail1:
if (fd >= 0)
closesocket(fd);
- av_free(s);
return ret;
}