ndk_sync_codec_fuzzer : Resolved Direct Memory Leak Issue
mFormat in NdkMediaCodecFuzzerBase class wasn't freed in
some cases. This CL creates a destructor for NdkMediaCodecFuzzerBase
and adds a free for mFormat in destructor. Also removes local call
to AMediaFormat_delete in ndk_sync_codec_fuzzer.
Test: $ANDROID_HOST_OUT/fuzz/x86_64/ndk_sync_codec_fuzzer/ndk_sync_codec_fuzzer CORPUS_DIR
Bug: 243215191
Change-Id: I84608dc934b21b71769a7d798af3f9bbf476d37e
(cherry picked from commit 03e1c251d2e090402a2bad30e8bee8924e065622)
diff --git a/media/ndk/fuzzer/NdkMediaCodecFuzzerBase.h b/media/ndk/fuzzer/NdkMediaCodecFuzzerBase.h
index 42ef6ea..e810e55 100644
--- a/media/ndk/fuzzer/NdkMediaCodecFuzzerBase.h
+++ b/media/ndk/fuzzer/NdkMediaCodecFuzzerBase.h
@@ -46,6 +46,11 @@
AMediaCodec* createCodec(bool isEncoder, bool isCodecForClient);
AMediaFormat* getCodecFormat() { return mFormat; };
void setFdp(FuzzedDataProvider* fdp) { mFdp = fdp; }
+ ~NdkMediaCodecFuzzerBase() {
+ if (mFormat) {
+ AMediaFormat_delete(mFormat);
+ }
+ }
private:
AMediaCodec* createAMediaCodecByname(bool isEncoder, bool isCodecForClient);