diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6efe885cf526f7c211d05b2a2a4132ada29fab97..a4c8b6f77fb3532414bba9a14828e37684bcaf15 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2184,6 +2184,13 @@ int av_write_header(AVFormatContext *s)
         }
     }
 
+    if (s->oformat->priv_data_size > 0) {
+        s->priv_data = av_mallocz(s->oformat->priv_data_size);
+        if (!s->priv_data)
+            return AVERROR_NOMEM;
+    } else
+        s->priv_data = NULL;
+
     if(s->oformat->write_header){
         ret = s->oformat->write_header(s);
         if (ret < 0)