Merge "coverity check: to make code more efficient and robust" into main
diff --git a/modules/sensors/dynamic_sensor/ConnectionDetector.cpp b/modules/sensors/dynamic_sensor/ConnectionDetector.cpp
index 99dab5b..1df002c 100644
--- a/modules/sensors/dynamic_sensor/ConnectionDetector.cpp
+++ b/modules/sensors/dynamic_sensor/ConnectionDetector.cpp
@@ -47,7 +47,11 @@
         }
     };
 
-    ::bind(mListenFd, (struct sockaddr*)&serverAddress, sizeof(serverAddress));
+    if (::bind(mListenFd, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) != NO_ERROR) {
+        ALOGE("Cannot bind to port %d", port);
+        mListenFd = -1;
+        return;
+    }
     if (::listen(mListenFd, 0) != NO_ERROR) {
         ALOGE("Cannot listen to port %d", port);
         mListenFd = -1;
@@ -196,12 +200,12 @@
 bool FileConnectionDetector::readInotifyData() {
     union {
         struct inotify_event ev;
-        char raw[sizeof(inotify_event) + NAME_MAX + 1];
+        char raw[sizeof(inotify_event) + NAME_MAX + 1] = {0};
     } buffer;
 
     bool ret = true;
     while (true) {
-        ssize_t len = ::read(mInotifyFd, &buffer, sizeof(buffer));
+        ssize_t len = ::read(mInotifyFd, &buffer, sizeof(buffer) - sizeof(char));
         if (len == -1 && errno == EAGAIN) {
             // no more data
             break;
diff --git a/modules/sensors/dynamic_sensor/HidUtils/HidParser.cpp b/modules/sensors/dynamic_sensor/HidUtils/HidParser.cpp
index 6321020..b11ba15 100644
--- a/modules/sensors/dynamic_sensor/HidUtils/HidParser.cpp
+++ b/modules/sensors/dynamic_sensor/HidUtils/HidParser.cpp
@@ -117,7 +117,7 @@
             HidReport report(reportType, flag, top, mLocal);
             mReport.push_back(report);
             std::shared_ptr<HidTreeNode> node(new HidReportNode(mCurrent, report));
-            mCurrent->addChild(node);
+            mCurrent->addChild(std::move(node));
             break;
         }
         default:
diff --git a/modules/sensors/dynamic_sensor/HidUtils/HidReport.cpp b/modules/sensors/dynamic_sensor/HidUtils/HidReport.cpp
index 9b2b78b..2b9b4cb 100644
--- a/modules/sensors/dynamic_sensor/HidUtils/HidReport.cpp
+++ b/modules/sensors/dynamic_sensor/HidUtils/HidReport.cpp
@@ -22,7 +22,8 @@
 namespace HidUtil {
 HidReport::HidReport(uint32_t type, uint32_t data,
                      const HidGlobal &global, const HidLocal &local)
-        : mReportType(type),
+        : mIsCollapsed(false),
+          mReportType(type),
           mFlag(data),
           mUsagePage(global.usagePage.get(0)),   // default value 0
           mUsage(local.getUsage(0)),