aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrujan Vandrangi <srujan.vandrangi@ittiam.com>2023-07-31 22:09:14 +0530
committerHarish Mahendrakar <harish.mahendrakar@ittiam.com>2023-07-31 11:38:44 -0700
commit43867a6e8bce2643853ed9684c26252f01bf7da5 (patch)
tree7bb5288b6babef3b7319915e66015c201280791a
parent0564b7a28a8d1cc4c086ce2218124a98fe194320 (diff)
downloadlibhevc-43867a6e8bce2643853ed9684c26252f01bf7da5.tar.gz
decoder: limit number of calls to decode header
Test: hevc_dec_fuzzer
-rw-r--r--fuzzer/hevc_dec_fuzzer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/fuzzer/hevc_dec_fuzzer.cpp b/fuzzer/hevc_dec_fuzzer.cpp
index 0249cf1..be3a054 100644
--- a/fuzzer/hevc_dec_fuzzer.cpp
+++ b/fuzzer/hevc_dec_fuzzer.cpp
@@ -257,7 +257,9 @@ void Codec::allocFrame() {
void Codec::decodeHeader(const uint8_t *data, size_t size) {
setParams(IVD_DECODE_HEADER);
- while (size > 0) {
+ size_t numDecodeCalls = 0;
+
+ while (size > 0 && numDecodeCalls < kMaxNumDecodeCalls) {
IV_API_CALL_STATUS_T ret;
ivd_video_decode_ip_t dec_ip{};
ivd_video_decode_op_t dec_op{};
@@ -284,6 +286,7 @@ void Codec::decodeHeader(const uint8_t *data, size_t size) {
data += bytes_consumed;
size -= bytes_consumed;
+ numDecodeCalls++;
mWidth = std::min(dec_op.u4_pic_wd, (UWORD32)10240);
mHeight = std::min(dec_op.u4_pic_ht, (UWORD32)10240);