[IOT - 2413] Fix for Heap-use-after-free issue.
authorarya.k <arya.kumar@samsung.com>
Thu, 6 Jul 2017 06:51:51 +0000 (12:21 +0530)
committerUze Choi <uzchoi@samsung.com>
Mon, 17 Jul 2017 10:47:30 +0000 (10:47 +0000)
[AddressSanitizer] Heap-use-after-free in InProcServerWrapper.cpp fix.

 if(!interface.empty())
        {
            const string query = string("if=" + interface);
            ocEntityHandlerRequest.query = const_cast<char *>
             (query.c_str());
        }

Local variable 'query' reference after it goes out of scope
can be a cause for crash.

Change-Id: I63a2b77719caa5fe5a3cb18bdb21943ddd616da7
Signed-off-by: arya.k <arya.kumar@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/21269
Reviewed-by: Harish Marappa <h.marappa@samsung.com>
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Changjoon Baek <joon.c.baek@samsung.com>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/resource-encapsulation/src/serverBuilder/unittests/RCSResourceObjectTest.cpp

index 8733319..e111be6 100644 (file)
@@ -374,6 +374,7 @@ public:
         auto request = make_shared<OCResourceRequest>();
 
         OCEntityHandlerRequest ocEntityHandlerRequest;
+        string query;
         memset(&ocEntityHandlerRequest, 0, sizeof(OCEntityHandlerRequest));
         OC::MessageContainer mc;
 
@@ -386,7 +387,7 @@ public:
 
         if(!interface.empty())
         {
-            const string query = string("if=" + interface);
+            query = string("if=" + interface);
             ocEntityHandlerRequest.query = const_cast<char *> (query.c_str());
         }