Merge "Make libfmq buildable for native_bridge"
diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk
index d82c0a3..97c9a4b 100644
--- a/benchmarks/Android.mk
+++ b/benchmarks/Android.mk
@@ -31,7 +31,7 @@
 LOCAL_REQUIRED_MODULES := android.hardware.tests.msgq@1.0-impl
 
 ifneq ($(TARGET_2ND_ARCH),)
-LOCAL_REQUIRED_MODULES += android.hardware.tests.msgq@1.0-impl$(TARGET_2ND_ARCH_MODULE_SUFFIX)
+LOCAL_REQUIRED_MODULES += android.hardware.tests.msgq@1.0-impl:32
 endif
 
 LOCAL_SHARED_LIBRARIES += android.hardware.tests.msgq@1.0 libfmq
diff --git a/include/fmq/MessageQueue.h b/include/fmq/MessageQueue.h
index 848b77f..ca031aa 100644
--- a/include/fmq/MessageQueue.h
+++ b/include/fmq/MessageQueue.h
@@ -1169,7 +1169,14 @@
 void* MessageQueue<T, flavor>::mapGrantorDescr(uint32_t grantorIdx) {
     const native_handle_t* handle = mDesc->handle();
     auto grantors = mDesc->grantors();
-    if ((handle == nullptr) || (grantorIdx >= grantors.size())) {
+    if (handle == nullptr) {
+        details::logError("mDesc->handle is null");
+        return nullptr;
+    }
+
+    if (grantorIdx >= grantors.size()) {
+        details::logError(std::string("grantorIdx must be less than ") +
+                          std::to_string(grantors.size()));
         return nullptr;
     }
 
@@ -1183,10 +1190,11 @@
 
     void* address = mmap(0, mapLength, PROT_READ | PROT_WRITE, MAP_SHARED,
                          handle->data[fdIndex], mapOffset);
-    return (address == MAP_FAILED)
-            ? nullptr
-            : reinterpret_cast<uint8_t*>(address) +
-            (grantors[grantorIdx].offset - mapOffset);
+    if (address == MAP_FAILED) {
+        details::logError(std::string("mmap failed: ") + std::to_string(errno));
+        return nullptr;
+    }
+    return reinterpret_cast<uint8_t*>(address) + (grantors[grantorIdx].offset - mapOffset);
 }
 
 template <typename T, MQFlavor flavor>
diff --git a/tests/Android.mk b/tests/Android.mk
index 822a571..809ab2b 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -20,15 +20,16 @@
 LOCAL_MODULE_CLASS := NATIVE_TESTS
 LOCAL_SRC_FILES := fmq_test
 LOCAL_REQUIRED_MODULES :=                           \
-    mq_test_client                                  \
     android.hardware.tests.msgq@1.0-service-test    \
+    mq_test_client                                  \
     hidl_test_helper
 
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest64
 
 ifneq ($(TARGET_2ND_ARCH),)
-LOCAL_REQUIRED_MODULES += android.hardware.tests.msgq@1.0-service-test$(TARGET_2ND_ARCH_MODULE_SUFFIX)
-LOCAL_REQUIRED_MODULES += mq_test_client$(TARGET_2ND_ARCH_MODULE_SUFFIX)
+LOCAL_REQUIRED_MODULES += \
+    android.hardware.tests.msgq@1.0-service-test:32 \
+    mq_test_client:32
 endif
 
 include $(BUILD_PREBUILT)