diff options
author | Ayushi Khopkar <ayushi.khopkar@ittiam.com> | 2022-05-05 01:43:43 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-05-05 01:43:43 +0000 |
commit | 31aa7ddc23465a0d385bdea7bf7e537d067290e1 (patch) | |
tree | 8edf2d5a885f8df5f133a2670f85180db85c63fd | |
parent | 8113ef979a302cbee5a0c2e11ba7f704114c5689 (diff) | |
parent | b0b2df3f09a80a71ec919d90ea22722dede41a64 (diff) | |
download | libldac-31aa7ddc23465a0d385bdea7bf7e537d067290e1.tar.gz |
libldac-encode_fuzzer: Bug Fix am: b0b2df3f09
Original change: https://android-review.googlesource.com/c/platform/external/libldac/+/2015996
Change-Id: I447184b3a38a12c2ec862cfa355a5e415e20df28
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | fuzzer/libldac_encode_fuzzer.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/fuzzer/libldac_encode_fuzzer.cc b/fuzzer/libldac_encode_fuzzer.cc index 2f293f1..51d8729 100644 --- a/fuzzer/libldac_encode_fuzzer.cc +++ b/fuzzer/libldac_encode_fuzzer.cc @@ -6,7 +6,13 @@ #include <stddef.h> #include "ldacBT.h" +#include <string.h> +#include <vector> + #define TESTFUNC_TYPE extern "C" int +constexpr int32_t kMaxWlValue = 4; +constexpr int32_t kMaxChValue = 2; +constexpr int32_t kMaxFrameSize = LDACBT_ENC_LSU * kMaxWlValue * kMaxChValue; TESTFUNC_TYPE LLVMFuzzerTestOneInput(const uint8_t *buf, size_t size) @@ -27,10 +33,17 @@ LLVMFuzzerTestOneInput(const uint8_t *buf, size_t size) LDACBT_CHANNEL_MODE_DUAL_CHANNEL, LDACBT_SMPL_FMT_S16, 48000); + uint8_t *readPointer = const_cast<uint8_t *>(buf); + std::vector<uint8_t> tmpData(kMaxFrameSize); + + if (size < kMaxFrameSize) { + memcpy(tmpData.data(), buf, size); + readPointer = tmpData.data(); + } ldacBT_encode( hLdacBt, - (void *)(&buf + 44), + readPointer, &pcm_used, p_stream, &stream_sz, |