From 694ebf6734cc7af6b8cf9c032fa3e5a00a54dc84 Mon Sep 17 00:00:00 2001 From: Robert Shih Date: Fri, 10 Mar 2017 17:23:52 -0800 Subject: [PATCH] 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 --- media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp b/media/libstagefright/omx/hal/1.0/impl/WGraphicBufferSource.cpp index 13e1f2f5f7..3c2face199 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 @@ struct TWGraphicBufferSource::TWOmxNodeWrapper : public IOmxNodeWrapper { const sp &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( -- 2.11.0