diff --git a/ffserver.c b/ffserver.c
index 2449a8095f59e23e263021c2d6c2408384281784..24996d35341689d7c094ec4701b0c7fbea7b19b9 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2494,7 +2494,10 @@ static int http_receive_data(HTTPContext *c)
             if (!fmt_in)
                 goto fail;
 
-            av_open_input_stream(&s, pb, c->stream->feed_filename, fmt_in, NULL);
+            if (av_open_input_stream(&s, pb, c->stream->feed_filename, fmt_in, NULL) < 0) {
+                av_free(pb);
+                goto fail;
+            }
 
             /* Now we have the actual streams */
             if (s->nb_streams != feed->nb_streams) {