diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 4d18d99e15e697b82340ed5276b8d89fba8fb7cd..9126717df23f9639a235406cc6074b6de7be7aa7 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -679,7 +679,7 @@ static int matroska_ebmlnum_uint(MatroskaDemuxContext *matroska,
 {
     ByteIOContext pb;
     init_put_byte(&pb, data, size, 0, NULL, NULL, NULL, NULL);
-    return ebml_read_num(matroska, &pb, 8, num);
+    return ebml_read_num(matroska, &pb, FFMIN(size, 8), num);
 }
 
 /*