summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAyushi Khopkar <ayushi.khopkar@ittiam.com>2022-05-05 01:43:43 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-05-05 01:43:43 +0000
commit31aa7ddc23465a0d385bdea7bf7e537d067290e1 (patch)
tree8edf2d5a885f8df5f133a2670f85180db85c63fd
parent8113ef979a302cbee5a0c2e11ba7f704114c5689 (diff)
parentb0b2df3f09a80a71ec919d90ea22722dede41a64 (diff)
downloadlibldac-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.cc15
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,