Fix Omx emptyBuffer fd leak in GraphicBufferSource
Bug: 36110748
Test: adb shell am instrument -e size small -w android.media.cts/android.support.test.runner.AndroidJUnitRunner
Change-Id: I733bb9a0206760e8cdd74a6a72ae40f8bffaaac8
diff --git a/media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp b/media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp
index 13e1f2f..3c2face 100644
--- a/media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp
+++ b/media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp
@@ -47,12 +47,16 @@
const sp<GraphicBuffer> &buffer,
int64_t timestamp, int fenceFd) override {
CodecBuffer tBuffer;
- return toStatusT(mOmxNode->emptyBuffer(
+ native_handle_t* fenceNh = native_handle_create_from_fd(fenceFd);
+ status_t err = toStatusT(mOmxNode->emptyBuffer(
bufferId,
*wrapAs(&tBuffer, buffer),
flags,
toRawTicks(timestamp),
- native_handle_create_from_fd(fenceFd)));
+ fenceNh));
+ native_handle_close(fenceNh);
+ native_handle_delete(fenceNh);
+ return err;
}
virtual void dispatchDataSpaceChanged(