diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c
index 4d53f8ab8f47c6c4894984240344416f8ad53f9c..5e56e4dbb21d4d983b79a3841a99406c48789bde 100644
--- a/libavcodec/mss2.c
+++ b/libavcodec/mss2.c
@@ -317,7 +317,7 @@ static int decode_rle(GetBitContext *gb, uint8_t *pal_dst, int pal_stride,
     if (next_code != 1 << current_length)
         return AVERROR_INVALIDDATA;
 
-    if (i = init_vlc(&vlc, 9, alphabet_size, bits, 1, 1, codes, 4, 4, 0))
+    if ((i = init_vlc(&vlc, 9, alphabet_size, bits, 1, 1, codes, 4, 4, 0)) < 0)
         return i;
 
     /* frame decode */