Camera: fix external camera FD double close

Release fence close was handled by freeReleaseFences so
hidl_handle should not own the native handle.

Test: running external camera on marlin
Bug: 64874137
Change-Id: I68e76d31985380eb3c502276df07d3648f67b6f1
diff --git a/camera/device/3.4/default/ExternalCameraDeviceSession.cpp b/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
index ff55489..48c382c 100644
--- a/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
+++ b/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
@@ -576,7 +576,7 @@
         if (req.buffers[i].acquireFence >= 0) {
             native_handle_t* handle = native_handle_create(/*numFds*/1, /*numInts*/0);
             handle->data[0] = req.buffers[i].acquireFence;
-            result.outputBuffers[i].releaseFence.setTo(handle, /*shouldOwn*/true);
+            result.outputBuffers[i].releaseFence.setTo(handle, /*shouldOwn*/false);
         }
     }
 
@@ -614,7 +614,7 @@
             result.outputBuffers[i].status = BufferStatus::ERROR;
             native_handle_t* handle = native_handle_create(/*numFds*/1, /*numInts*/0);
             handle->data[0] = req.buffers[i].acquireFence;
-            result.outputBuffers[i].releaseFence.setTo(handle, /*shouldOwn*/true);
+            result.outputBuffers[i].releaseFence.setTo(handle, /*shouldOwn*/false);
             notifyError(req.frameNumber, req.buffers[i].streamId, ErrorCode::ERROR_BUFFER);
         } else {
             result.outputBuffers[i].status = BufferStatus::OK;
@@ -622,7 +622,7 @@
             if (req.buffers[i].acquireFence > 0) {
                 native_handle_t* handle = native_handle_create(/*numFds*/1, /*numInts*/0);
                 handle->data[0] = req.buffers[i].acquireFence;
-                result.outputBuffers[i].releaseFence.setTo(handle, /*shouldOwn*/true);
+                result.outputBuffers[i].releaseFence.setTo(handle, /*shouldOwn*/false);
             }
         }
     }
@@ -1603,6 +1603,7 @@
                 halBuf.fenceTimeout = true;
             } else {
                 ::close(halBuf.acquireFence);
+                halBuf.acquireFence = -1;
             }
         }