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) {