Merge "mpeg4_enc_fuzzer: Bug Fix" am: abbe1a798f am: 295539c1ca
Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1505331
Change-Id: I1d0b1bb7ca5add9dde5d683f44a7b8337568f260
diff --git a/media/libstagefright/codecs/m4v_h263/fuzzer/mpeg4_h263_enc_fuzzer.cpp b/media/libstagefright/codecs/m4v_h263/fuzzer/mpeg4_h263_enc_fuzzer.cpp
index f154706..4033c6c 100644
--- a/media/libstagefright/codecs/m4v_h263/fuzzer/mpeg4_h263_enc_fuzzer.cpp
+++ b/media/libstagefright/codecs/m4v_h263/fuzzer/mpeg4_h263_enc_fuzzer.cpp
@@ -137,7 +137,8 @@
void Codec::encodeFrames(const uint8_t *data, size_t size) {
size_t inputBufferSize = (mFrameWidth * mFrameHeight * 3) / 2;
size_t outputBufferSize = inputBufferSize * 2;
- uint8_t outputBuffer[outputBufferSize];
+ uint8_t *outputBuffer = new uint8_t[outputBufferSize];
+ uint8_t *inputBuffer = new uint8_t[inputBufferSize];
// Get VOL header.
int32_t sizeOutputBuffer = outputBufferSize;
@@ -146,7 +147,6 @@
size_t numFrame = 0;
while (size > 0) {
size_t bytesConsumed = std::min(size, inputBufferSize);
- uint8_t inputBuffer[inputBufferSize];
memcpy(inputBuffer, data, bytesConsumed);
if (bytesConsumed < sizeof(inputBuffer)) {
memset(inputBuffer + bytesConsumed, data[0], sizeof(inputBuffer) - bytesConsumed);
@@ -170,6 +170,8 @@
data += bytesConsumed;
size -= bytesConsumed;
}
+ delete[] inputBuffer;
+ delete[] outputBuffer;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {