diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index c0cc3a3ffff14c897732076083c6b5b8ba886100..33cb63b46b58e3af8afa6977b964c451eed91c46 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -103,6 +103,9 @@ int av_buffersrc_write_frame(AVFilterContext *buffer_filter, AVFrame *frame)
                                  frame->format);
         buf = ff_get_audio_buffer(buffer_filter->outputs[0], AV_PERM_WRITE,
                                   frame->nb_samples);
+        if (!buf)
+            return AVERROR(ENOMEM);
+
         av_samples_copy(buf->extended_data, frame->extended_data,
                         0, 0, frame->nb_samples,
                         av_get_channel_layout_nb_channels(frame->channel_layout),