diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index 00e28f8fd33e7858fddb11f2e82b0055f476f82c..f7680633091acd724d56b16d124e6dd3b2c454e1 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -195,6 +195,7 @@ do {                                                                    \
     ref_out = av_buffer_create(data, data_size, compat_unref_buffer,    \
                                dummy_ref, 0);                           \
     if (!ref_out) {                                                     \
+        av_freep(&dummy_ref);                                           \
         av_frame_unref(frame);                                          \
         ret = AVERROR(ENOMEM);                                          \
         goto fail;                                                      \