Fix the external sensor worker to handle NULL payload properly 10/87010/2
authorMu-Woong Lee <muwoong.lee@samsung.com>
Tue, 6 Sep 2016 03:47:39 +0000 (12:47 +0900)
committerMu-Woong Lee <muwoong.lee@samsung.com>
Tue, 6 Sep 2016 05:37:46 +0000 (14:37 +0900)
Change-Id: If425d87b5cae885ee972fdb16edd9b30c9987182
Signed-off-by: Mu-Woong Lee <muwoong.lee@samsung.com>
src/server/external_sensor_worker.cpp

index 9bc46fb..67bb4d7 100644 (file)
@@ -79,25 +79,22 @@ bool external_sensor_worker::working(void *ctx)
                return false;
        }
 
-       if (header.size > 0) {
-               payload = new(std::nothrow) char[header.size];
-               retvm_if(!payload, false, "Failed to allocate memory");
-
-               if (inst->m_socket.recv(payload, header.size) <= 0) {
-                       string info;
-                       inst->get_info(info);
-                       _D("%s failed to receive data of packet", info.c_str());
-                       delete[] payload;
-                       return false;
-               }
-       } else {
-               payload = NULL;
+       retvm_if(header.size == 0, false, "Invalid header size");
+
+       payload = new(std::nothrow) char[header.size];
+       retvm_if(!payload, false, "Failed to allocate memory");
+
+       if (inst->m_socket.recv(payload, header.size) <= 0) {
+               string info;
+               inst->get_info(info);
+               _D("%s failed to receive data of packet", info.c_str());
+               delete[] payload;
+               return false;
        }
 
        ret = inst->dispatch_command(header.cmd, payload);
 
-       if (payload)
-               delete[] payload;
+       delete[] payload;
 
        return ret;
 }