diff --git a/libavcodec/cljr.c b/libavcodec/cljr.c
index 2834ff6b175dda6f07d34315e4507e77bf4fcd81..87c8fc24fb87e8bb6e20ac62579083dd0b4451c1 100644
--- a/libavcodec/cljr.c
+++ b/libavcodec/cljr.c
@@ -57,7 +57,7 @@ static int decode_frame(AVCodecContext *avctx,
     GetBitContext gb;
     AVFrame *picture = data;
     AVFrame * const p = &a->picture;
-    int x, y;
+    int x, y, ret;
 
     if (p->data[0])
         avctx->release_buffer(avctx, p);
@@ -74,9 +74,9 @@ static int decode_frame(AVCodecContext *avctx,
     }
 
     p->reference = 0;
-    if (avctx->get_buffer(avctx, p) < 0) {
+    if ((ret = avctx->get_buffer(avctx, p)) < 0) {
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-        return -1;
+        return ret;
     }
     p->pict_type = AV_PICTURE_TYPE_I;
     p->key_frame = 1;