aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-02-08 09:59:59 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-02-11 19:38:40 +0100
commit321c31cfe632cf7763e2e09765d59f1ab40abf3a (patch)
treea2201fe282aed379ad2332165be076b7e2b3523b
parent0dd1ff67c8a5b687f4b9beb51b425ef7fb8b72c1 (diff)
downloadffmpeg-321c31cfe632cf7763e2e09765d59f1ab40abf3a.tar.gz
avcodec/cbs_jpeg: Fix size of huffman symbol table array
L[i] can be in the range of 0-255, see table B.5 of ITU T.81. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/cbs_jpeg.h2
-rw-r--r--libavcodec/cbs_jpeg_syntax_template.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/cbs_jpeg.h b/libavcodec/cbs_jpeg.h
index 6305f0ee86..9dbebd259f 100644
--- a/libavcodec/cbs_jpeg.h
+++ b/libavcodec/cbs_jpeg.h
@@ -99,7 +99,7 @@ typedef struct JPEGRawHuffmanTable {
uint8_t Tc;
uint8_t Th;
uint8_t L[16];
- uint8_t V[224];
+ uint8_t V[256];
} JPEGRawHuffmanTable;
typedef struct JPEGRawHuffmanTableSpecification {
diff --git a/libavcodec/cbs_jpeg_syntax_template.c b/libavcodec/cbs_jpeg_syntax_template.c
index 6eda56d623..e06abdc674 100644
--- a/libavcodec/cbs_jpeg_syntax_template.c
+++ b/libavcodec/cbs_jpeg_syntax_template.c
@@ -84,12 +84,12 @@ static int FUNC(huffman_table)(CodedBitstreamContext *ctx, RWContext *rw,
u(4, Th, 0, 3);
for (i = 0; i < 16; i++)
- us(8, L[i], i, 0, 224);
+ us(8, L[i], i, 0, 255);
ij = 0;
for (i = 0; i < 16; i++) {
for (j = 0; j < current->L[i]; j++) {
- if (ij >= 224)
+ if (ij >= FF_ARRAY_ELEMS(current->V))
return AVERROR_INVALIDDATA;
us(8, V[ij], ij, 0, 255);
++ij;