mpeg4_writer_fuzzer: Bug Fix
Resolved CHECK_FAILURE issue in mpeg4_writer_fuzzer
exec/s: 1000
Test: ./mpeg4_writer_fuzzer clusterfuzz-testcase-minimized-mpeg4_writer_fuzzer-6028683380850688
Bug: 297948485
Change-Id: I19b9b15f4cde0224e2dd4f8ab501f2d0c22fe624
diff --git a/media/libstagefright/writer_fuzzers/WriterFuzzerBase.cpp b/media/libstagefright/writer_fuzzers/WriterFuzzerBase.cpp
index 2016b2a..fee5c94 100644
--- a/media/libstagefright/writer_fuzzers/WriterFuzzerBase.cpp
+++ b/media/libstagefright/writer_fuzzers/WriterFuzzerBase.cpp
@@ -226,7 +226,13 @@
mediaBuffer->add_ref();
// This pushBuffer will wait until the mediaBuffer is consumed.
- if (currentTrack->pushBuffer(mediaBuffer) != OK) {
+ android::status_t pushStatus = currentTrack->pushBuffer(mediaBuffer);
+
+ if (pushStatus != OK) {
+ if (pushStatus == INVALID_OPERATION) {
+ // In Case of INVALID_OPERATION, mObserver needs to be set before calling release()
+ mediaBuffer->setObserver(currentTrack.get());
+ }
mediaBuffer->release();
}
}