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(