diff --git a/libavformat/metadata.c b/libavformat/metadata.c
index fc3a9d7d55623f04d62176f744b1415c9079dd62..b9b6de797255067d94b444c1d52575ca9fc62a1b 100644
--- a/libavformat/metadata.c
+++ b/libavformat/metadata.c
@@ -33,7 +33,7 @@ void ff_metadata_conv(AVDictionary **pm, const AVMetadataConv *d_conv,
     AVDictionary *dst = NULL;
     const char *key;
 
-    if (d_conv == s_conv)
+    if (d_conv == s_conv || !pm)
         return;
 
     while ((mtag = av_dict_get(*pm, "", mtag, AV_DICT_IGNORE_SUFFIX))) {