diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index adface26ced583454bee557d74dece302391cf93..0f53d39a8da8d7a28e8ba98785cb392e3b4cfb3c 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -74,6 +74,10 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data, int *data_si
     int consumed = buf_size;
 
     if(avctx->frame_number == 0) {
+        if (buf_size < 2) {
+            av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
+            return AVERROR(EINVAL);
+        }
         esc->fib_acc = (int8_t)buf[1] + 128;
         buf_size -= 2;
         buf += 2;