diff --git a/libavformat/utils.c b/libavformat/utils.c
index eaba47391401d6aadd7e8c2b98cda66cd35ba5ee..bbdc2cdb8aba592c1d3864e3b15b2bdb5498545c 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2733,7 +2733,12 @@ void avformat_free_context(AVFormatContext *s)
 void avformat_close_input(AVFormatContext **ps)
 {
     AVFormatContext *s = *ps;
-    AVIOContext *pb    = s->pb;
+    AVIOContext *pb;
+
+    if (!*ps)
+        return;
+
+    pb = s->pb;
 
     if ((s->iformat && s->iformat->flags & AVFMT_NOFILE) ||
         (s->flags & AVFMT_FLAG_CUSTOM_IO))