diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 806521023d09a65cbc85c54c252a9bf26d2810b0..9875b264080004b9735dd9a46864b62d141d9554 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -1196,7 +1196,7 @@ static void decode_delta_l(uint8_t *dst,
         bytestream2_init(&ogb, buf + 2 * poff1, buf_end - (buf + 2 * poff1));
 
         while ((bytestream2_peek_be16(&ogb)) != 0xFFFF) {
-            uint16_t offset = bytestream2_get_be16(&ogb);
+            uint32_t offset = bytestream2_get_be16(&ogb);
             int16_t cnt = bytestream2_get_be16(&ogb);
             uint16_t data;