[Prevent] Ensure we don't use a pointer to a freed resource.
authorJan Olszak <j.olszak@samsung.com>
Fri, 7 Dec 2012 10:36:19 +0000 (11:36 +0100)
committerGerrit Code Review <gerrit2@kim11>
Tue, 11 Dec 2012 15:55:41 +0000 (00:55 +0900)
[Issue#] Using pointer to freed resource.
[Bug] N/A
[Cause] N/A
[Solution] Not using a pointer.
[Verification] Build wrt. Run wrt tests.

Change-Id: Ide07986f42b0151899961ea9e87a05de5b65e1f1

src/wrt-launcher/wrt-launcher.cpp

index fc41133..fc8783e 100644 (file)
@@ -338,7 +338,7 @@ int main(int argc, char* argv[])
     } while (next_opt != -1);
 
     if ((op == 's') || (op == 'k')) {
-        const char *temp = NULL;
+        std::string temp;
 
         if (NULL == g_dbConnection.get()) {
             Try {
@@ -360,18 +360,18 @@ int main(int argc, char* argv[])
                 !strcmp(DPL::ToUTF8String(*d_guid).c_str(), temp_arg))
             {
                 DPL::Optional<DPL::String> package_name = (*dao)->getPkgname();
-                temp = DPL::ToUTF8String(*package_name).c_str();
+                temp = DPL::ToUTF8String(*package_name);
                 break;
             }
             if (!strcmp(DPL::ToUTF8String(*d_pkgname).c_str(), temp_arg)) {
                 DPL::Optional<DPL::String> package_name = (*dao)->getPkgname();
-                temp = DPL::ToUTF8String(*package_name).c_str();
+                temp = DPL::ToUTF8String(*package_name);
                 break;
             }
         }
 
-        if (temp != NULL) {
-            strncpy(pkgname, (char *)temp, strlen(temp));
+        if (!temp.empty()) {
+            strncpy(pkgname, temp.c_str(), strlen(temp.c_str()));
         } else {
             printf("result: %s\n", "failed");
             return -1;