diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index cb29d3621b86b41050cb74924085a5b1baa723a6..67c7eef1b5a96b09ceb89bbd6cd24116f6475851 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -449,7 +449,7 @@ int ff_h264_alloc_tables(H264Context *h)
     if (!h->DPB) {
         h->DPB = av_mallocz_array(H264_MAX_PICTURE_COUNT, sizeof(*h->DPB));
         if (!h->DPB)
-            return AVERROR(ENOMEM);
+            goto fail;
         for (i = 0; i < H264_MAX_PICTURE_COUNT; i++)
             av_frame_unref(&h->DPB[i].f);
         av_frame_unref(&h->cur_pic.f);