diff --git a/libavutil/fifo.c b/libavutil/fifo.c
index fb06765a16677b5b59595bf29e7215b4e9d8dbb0..b86d2629ee8211f5cef38ed01e56a8878800b438 100644
--- a/libavutil/fifo.c
+++ b/libavutil/fifo.c
@@ -26,9 +26,9 @@ int av_fifo_init(AVFifoBuffer *f, int size)
 {
     f->wptr = f->rptr =
     f->buffer = av_malloc(size);
+    f->end = f->buffer + size;
     if (!f->buffer)
         return -1;
-    f->end = f->buffer + size;
     return 0;
 }