Snap for 12702769 from 557cbd22228f820200ba2ea8f8ab518fa4151c7b to 25Q1-release

Change-Id: Iae796262ef7e5c30c5fa1688b362007ce34f01e4
diff --git a/modules/sensors/dynamic_sensor/Android.bp b/modules/sensors/dynamic_sensor/Android.bp
index dbb3d93..00de46d 100644
--- a/modules/sensors/dynamic_sensor/Android.bp
+++ b/modules/sensors/dynamic_sensor/Android.bp
@@ -143,7 +143,9 @@
 cc_binary_host {
     name: "hidrawsensor_host_test",
     defaults: ["dynamic_sensor_defaults"],
-
+    static_libs: [
+        "libutils_binder",
+    ],
     srcs: [
         "HidRawSensor.cpp",
         "BaseSensorObject.cpp",
@@ -159,7 +161,9 @@
 cc_binary_host {
     name: "hidrawdevice_host_test",
     defaults: ["dynamic_sensor_defaults"],
-
+    static_libs: [
+        "libutils_binder",
+    ],
     srcs: [
         "HidRawDevice.cpp",
         "HidRawSensor.cpp",
diff --git a/modules/sensors/dynamic_sensor/HidRawSensor.cpp b/modules/sensors/dynamic_sensor/HidRawSensor.cpp
index 84baffc..d9c1e66 100644
--- a/modules/sensors/dynamic_sensor/HidRawSensor.cpp
+++ b/modules/sensors/dynamic_sensor/HidRawSensor.cpp
@@ -18,6 +18,7 @@
 
 #include <android-base/properties.h>
 #include <utils/Errors.h>
+#include <utils/Unicode.h>
 #include <com_android_libhardware_dynamic_sensors_flags.h>
 #include "HidLog.h"
 
@@ -421,7 +422,14 @@
 
 void HidRawSensor::initFeatureValueFromHidDeviceInfo(
         FeatureValue *featureValue, const HidDevice::HidDeviceInfo &info) {
-    featureValue->name = info.name;
+    const uint8_t *str8 = (uint8_t *)info.name.c_str();
+    const ssize_t len16 = utf8_to_utf16_length(str8, info.name.size());
+    if (len16 != -1) {
+        featureValue->name = info.name;
+    } else {
+        LOG_E << "Received an invalid sensor name" << LOG_ENDL;
+        featureValue->name = "Invalid sensor name";
+    }
 
     std::ostringstream ss;
     ss << info.busType << " "