diff options
author | Srujan Vandrangi <srujan.vandrangi@ittiam.com> | 2023-07-31 22:09:14 +0530 |
---|---|---|
committer | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2023-07-31 11:38:44 -0700 |
commit | 43867a6e8bce2643853ed9684c26252f01bf7da5 (patch) | |
tree | 7bb5288b6babef3b7319915e66015c201280791a | |
parent | 0564b7a28a8d1cc4c086ce2218124a98fe194320 (diff) | |
download | libhevc-43867a6e8bce2643853ed9684c26252f01bf7da5.tar.gz |
decoder: limit number of calls to decode header
Test: hevc_dec_fuzzer
-rw-r--r-- | fuzzer/hevc_dec_fuzzer.cpp | 5 |
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); |