applehttpproto: Use the close function if the open function fails
authorMartin Storsjö <martin@martin.st>
Thu, 1 Dec 2011 09:07:35 +0000 (11:07 +0200)
committerMartin Storsjö <martin@martin.st>
Thu, 1 Dec 2011 11:47:23 +0000 (13:47 +0200)
This should clean up leaked memory.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/applehttpproto.c

index 0e64dad..8dbcf2d 100644 (file)
@@ -174,6 +174,17 @@ fail:
     return ret;
 }
 
+static int applehttp_close(URLContext *h)
+{
+    AppleHTTPContext *s = h->priv_data;
+
+    free_segment_list(s);
+    free_variant_list(s);
+    ffurl_close(s->seg_hd);
+    av_free(s);
+    return 0;
+}
+
 static int applehttp_open(URLContext *h, const char *uri, int flags)
 {
     AppleHTTPContext *s;
@@ -229,7 +240,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags)
     return 0;
 
 fail:
-    av_free(s);
+    applehttp_close(h);
     return ret;
 }
 
@@ -287,17 +298,6 @@ retry:
     goto start;
 }
 
-static int applehttp_close(URLContext *h)
-{
-    AppleHTTPContext *s = h->priv_data;
-
-    free_segment_list(s);
-    free_variant_list(s);
-    ffurl_close(s->seg_hd);
-    av_free(s);
-    return 0;
-}
-
 URLProtocol ff_applehttp_protocol = {
     .name      = "applehttp",
     .url_open  = applehttp_open,