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)),
