From 063a881e7a5cd57156dbd0c9b6ad4d30f7023e55 Mon Sep 17 00:00:00 2001 From: Kimball Thurston Date: Thu, 2 Feb 2023 14:04:12 +1300 Subject: [PATCH] Fix missing guard check (#1329) Addresses OSS-FUZZ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52730 Signed-off-by: Kimball Thurston --- src/lib/OpenEXRCore/internal_huf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/lib/OpenEXRCore/internal_huf.c b/src/lib/OpenEXRCore/internal_huf.c index fa769c9ef..92fcc3233 100644 --- a/src/lib/OpenEXRCore/internal_huf.c +++ b/src/lib/OpenEXRCore/internal_huf.c @@ -1280,9 +1280,21 @@ fasthuf_initialize ( codeCount[codeLen]++; } else if (codeLen == (uint64_t) LONG_ZEROCODE_RUN) + { + if (currByte >= topByte) + { + if (pctxt) + pctxt->print_error ( + pctxt, + EXR_ERR_CORRUPT_CHUNK, + "Error decoding Huffman table (Truncated table data)."); + return EXR_ERR_CORRUPT_CHUNK; + } + symbol += fasthuf_read_bits (8, &currBits, &currBitCount, &currByte) + SHORTEST_LONG_RUN - 1; + } else symbol += codeLen - SHORT_ZEROCODE_RUN + 1;