Use new read(Embedded)Buffer/readNativeHandle APIs.

hidl_memory may have a null native_handle.
MQDescriptor may not.

Bug: 34134129
Test: hidl_test
Change-Id: I824760d59984a7c3e00309010760e33e4c289ef0
diff --git a/transport/HidlBinderSupport.cpp b/transport/HidlBinderSupport.cpp
index 38e0640..6be7254 100644
--- a/transport/HidlBinderSupport.cpp
+++ b/transport/HidlBinderSupport.cpp
@@ -30,22 +30,20 @@
 
 status_t readEmbeddedFromParcel(hidl_memory * /* memory */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {
-    ::android::status_t _hidl_err = ::android::OK;
-    const native_handle_t *_hidl_memory_handle = parcel.readEmbeddedNativeHandle(
+    const native_handle_t *handle;
+    ::android::status_t _hidl_err = parcel.readNullableEmbeddedNativeHandle(
             parentHandle,
-            parentOffset + hidl_memory::kOffsetOfHandle);
+            parentOffset + hidl_memory::kOffsetOfHandle,
+            &handle);
 
-    if (_hidl_memory_handle == nullptr) {
-        _hidl_err = ::android::UNKNOWN_ERROR;
-        return _hidl_err;
+    if (_hidl_err == ::android::OK) {
+        _hidl_err = readEmbeddedFromParcel(
+                (hidl_string*) nullptr,
+                parcel,
+                parentHandle,
+                parentOffset + hidl_memory::kOffsetOfName);
     }
 
-    _hidl_err = readEmbeddedFromParcel(
-            (hidl_string*) nullptr,
-            parcel,
-            parentHandle,
-            parentOffset + hidl_memory::kOffsetOfName);
-
     return _hidl_err;
 }
 
@@ -71,12 +69,12 @@
 
 status_t readEmbeddedFromParcel(hidl_string * /* string */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {
-    const void *ptr = parcel.readEmbeddedBuffer(
+    const void *out;
+    return parcel.readEmbeddedBuffer(
             nullptr /* buffer_handle */,
             parentHandle,
-            parentOffset + hidl_string::kOffsetOfBuffer);
-
-    return ptr != NULL ? OK : UNKNOWN_ERROR;
+            parentOffset + hidl_string::kOffsetOfBuffer,
+            &out);
 }
 
 status_t writeEmbeddedToParcel(const hidl_string &string,