From: Mu-Woong Lee Date: Tue, 6 Sep 2016 03:47:39 +0000 (+0900) Subject: Fix the external sensor worker to handle NULL payload properly X-Git-Tag: accepted/tizen/3.0/ivi/20161011.062327^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ea1a44203daba3252cd98d0172d21e313477982;p=platform%2Fcore%2Fsystem%2Fsensord.git Fix the external sensor worker to handle NULL payload properly Change-Id: If425d87b5cae885ee972fdb16edd9b30c9987182 Signed-off-by: Mu-Woong Lee --- diff --git a/src/server/external_sensor_worker.cpp b/src/server/external_sensor_worker.cpp index 9bc46fb..67bb4d7 100644 --- a/src/server/external_sensor_worker.cpp +++ b/src/server/external_sensor_worker.cpp @@ -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; }