diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
index 46109e0a5e..eecadaf503 100644
--- a/libavcodec/movtextenc.c
+++ b/libavcodec/movtextenc.c
@@ -667,6 +667,8 @@ static int mov_text_encode_frame(AVCodecContext *avctx, unsigned char *buf,
         }
     }
 
+    if (s->byte_count > UINT16_MAX)
+        return AVERROR(ERANGE);
     AV_WB16(buf, s->byte_count);
     buf += 2;