diff --git a/libavcodec/options.c b/libavcodec/options.c
index fb803f3..b7f91cf 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -134,7 +134,8 @@ int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec)
         if(codec->priv_class){
             *(const AVClass**)s->priv_data = codec->priv_class;
             av_opt_set_defaults(s->priv_data);
-        }
+        } else
+            av_freep(&s->priv_data);
     }
     if (codec && codec->defaults) {
         int ret;
