Merge "libbinder_ndk: don't borrow fd into unique_fd"
diff --git a/libs/binder/ndk/parcel.cpp b/libs/binder/ndk/parcel.cpp
index 703ceae..c33c44f 100644
--- a/libs/binder/ndk/parcel.cpp
+++ b/libs/binder/ndk/parcel.cpp
@@ -247,15 +247,12 @@
         if (fd != -1) {
             return STATUS_UNKNOWN_ERROR;
         }
-        return parcel->get()->writeInt32(0);  // null
+        return PruneStatusT(parcel->get()->writeInt32(0));  // null
     }
+    status_t status = parcel->get()->writeInt32(1);  // not-null
+    if (status != STATUS_OK) return PruneStatusT(status);
 
-    ParcelFileDescriptor parcelFd = ParcelFileDescriptor(unique_fd(fd));
-    status_t status = parcel->get()->writeParcelable(parcelFd);
-
-    // ownership is retained by caller
-    (void)parcelFd.release().release();
-
+    status = parcel->get()->writeDupParcelFileDescriptor(fd);
     return PruneStatusT(status);
 }