changeset 3754:8d267b43eaba libavformat

Move malloc() down until after all initializations, so that the resource is only allocated if initialization worked. This means that on failure, we don't have to deallocate it.
author rbultje
date Sat, 23 Aug 2008 18:46:30 +0000
parents 42ed3629601d
children b9c1bcc6c1ca
files tcp.c
diffstat 1 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/tcp.c	Sat Aug 23 17:39:56 2008 +0000
+++ b/tcp.c	Sat Aug 23 18:46:30 2008 +0000
@@ -49,12 +49,6 @@
     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 @@
         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 @@
  fail1:
     if (fd >= 0)
         closesocket(fd);
-    av_free(s);
     return ret;
 }