Fixing all the issues found by prevent
authorKarol Pawlowski <k.pawlowski@samsung.com>
Fri, 12 Apr 2013 13:04:36 +0000 (15:04 +0200)
committerYunchan Cho <yunchan.cho@samsung.com>
Wed, 17 Apr 2013 11:53:29 +0000 (20:53 +0900)
[Issue#] LINUXWRT-234
[Problem] Too many prevent warnings
[Cause] N/A
[Solution] Remove them
[Verification] Build web-provider repository

Change-Id: I1dc3410f66dd5146cc39acfc3d852a72e4b5457a

src/API/SqliteDB.cpp
src/API/web_provider_plugin_info.cpp
src/Daemon/BoxDaemonImpl.cpp
src/Daemon/BoxDaemonUtil.cpp
src/Plugin/BoxPluginConnector.cpp

index 900bda7..fefa41d 100644 (file)
@@ -91,6 +91,7 @@ bool SqliteDB::setCommand(std::string& query, const char* fmt, ...)
             intValue = va_arg(ap, int);
             ret = sqlite3_bind_int(m_stmt, i + 1, intValue);
             if (ret != SQLITE_OK) {
+                va_end(ap);
                 return false;
             }
             break;
@@ -98,6 +99,7 @@ bool SqliteDB::setCommand(std::string& query, const char* fmt, ...)
             stringValue = va_arg(ap, char*);
             ret = sqlite3_bind_text(m_stmt, i + 1, stringValue, -1, NULL);
             if (ret != SQLITE_OK) {
+                va_end(ap);
                 return false;
             }
             break;
index 1262a5f..9a3ce08 100644 (file)
@@ -31,6 +31,7 @@
 #include <json-glib/json-glib.h>
 #include <Core/Util/Log.h>
 #include "web_provider_plugin_info.h"
+#include <memory>
 
 // static functions
 static web_provider_plugin_info* get_parsed_json_data(std::string& configPath);
@@ -52,7 +53,7 @@ static const std::string jsonMemberBoxId("service_boxid");
 
 web_provider_plugin_info** web_provider_plugin_get_installed_list(int* count)
 {
-    DIR* dir = opendir(installedPluginDirPath.c_str());
+    std::unique_ptr<DIR, int(*)(DIR*)> dir (opendir(installedPluginDirPath.c_str()), closedir);
     if (!dir) {
         LogD("failed to open directory for web livebox plugins");
         *count = 0;
@@ -64,7 +65,7 @@ web_provider_plugin_info** web_provider_plugin_get_installed_list(int* count)
     struct dirent* entry;
     struct stat configStat;
     std::string configPath;
-    while (entry = readdir(dir)) {
+    while ((entry = readdir(dir.get()))) {
         if (!strcmp(entry->d_name, ".") || 
                 !strcmp(entry->d_name, "..")) {
             continue;
@@ -94,8 +95,7 @@ web_provider_plugin_info** web_provider_plugin_get_installed_list(int* count)
     std::list<web_provider_plugin_info*> pluginList;
     for (auto it = configList.begin(); 
             it != configList.end(); it++) {
-        web_provider_plugin_info* info = 
-            get_parsed_json_data(*it);
+        web_provider_plugin_info* info = get_parsed_json_data(*it) ;
         if (!info) {
             continue;
         }
@@ -138,16 +138,19 @@ void web_provider_plugin_release_installed_list(
     for (int i = 0; i < count; i++) {
         if (info_list[i]) {
             if (info_list[i]->type) {
-                free(const_cast<char*>(info_list[i]->type));
+                delete[] info_list[i]->type;
             }
             if (info_list[i]->path) {
-                free(const_cast<char*>(info_list[i]->path));
+                delete[] info_list[i]->path;
             }
             if (info_list[i]->service_boxid) {
-                free(const_cast<char*>(info_list[i]->service_boxid));
+                delete[] info_list[i]->service_boxid;
             }
         }
     }
+    if (info_list) {
+        delete[] info_list;
+    }
 }
 
 static web_provider_plugin_info* get_parsed_json_data(std::string& configPath)
index a0f629e..781b4ed 100644 (file)
@@ -146,10 +146,10 @@ int BoxDaemonImpl::boxCreateCallback(
     LogD("update period: %f", info->period);
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_ADD_BOX, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                    requestBoxJobCallback,
+                    new JobInfo(REQUEST_CMD_ADD_BOX, info, This))
+                    ? 0 : -1;
 }
 
 int BoxDaemonImpl::boxReCreateCallback(ProviderEventArgPtr arg, void* data)
@@ -188,10 +188,10 @@ int BoxDaemonImpl::boxReCreateCallback(ProviderEventArgPtr arg, void* data)
     LogD("update period: %f", info->period);
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_ADD_BOX, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                    requestBoxJobCallback,
+                    new JobInfo(REQUEST_CMD_ADD_BOX, info, This))
+                    ? 0 : -1;
 }
 
 int BoxDaemonImpl::boxDestroyCallback(ProviderEventArgPtr arg, void* data)
@@ -209,10 +209,10 @@ int BoxDaemonImpl::boxDestroyCallback(ProviderEventArgPtr arg, void* data)
     LogD("InstanceId: %s", info->instanceId.c_str());
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_REMOVE_BOX, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                    requestBoxJobCallback,
+                    new JobInfo(REQUEST_CMD_REMOVE_BOX, info, This))
+                    ? 0 : -1;
 }
 
 int BoxDaemonImpl::pdCreateCallback(ProviderEventArgPtr arg, void* data)
@@ -238,10 +238,10 @@ int BoxDaemonImpl::pdCreateCallback(ProviderEventArgPtr arg, void* data)
     LogD("height: %d", info->pdHeight);
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_OPEN_PD, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_OPEN_PD, info, This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::pdDestroyCallback(ProviderEventArgPtr arg, void* data)
@@ -259,10 +259,10 @@ int BoxDaemonImpl::pdDestroyCallback(ProviderEventArgPtr arg, void* data)
     LogD("InstanceId: %s", info->instanceId.c_str());
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_CLOSE_PD, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_CLOSE_PD, info, This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::clickedCallback(ProviderEventArgPtr arg, void* data)
@@ -308,10 +308,10 @@ int BoxDaemonImpl::resizeCallback(ProviderEventArgPtr arg, void* data)
     LogD("height: %d", info->boxHeight);
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_RESIZE_BOX, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_RESIZE_BOX, info, This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::boxPauseCallback(ProviderEventArgPtr arg, void* data)
@@ -330,10 +330,10 @@ int BoxDaemonImpl::boxPauseCallback(ProviderEventArgPtr arg, void* data)
     LogD("InstanceId: %s", info->instanceId.c_str());
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_PAUSE_BOX, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_PAUSE_BOX, info, This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::boxResumeCallback(ProviderEventArgPtr arg, void* data)
@@ -352,10 +352,10 @@ int BoxDaemonImpl::boxResumeCallback(ProviderEventArgPtr arg, void* data)
     LogD("InstanceId: %s", info->instanceId.c_str());
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_RESUME_BOX, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_RESUME_BOX, info, This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::pauseCallback(ProviderEventArgPtr arg, void* data)
@@ -368,10 +368,10 @@ int BoxDaemonImpl::pauseCallback(ProviderEventArgPtr arg, void* data)
     LogD("web-provider is paused");
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_PAUSE_ALL, BoxInfoPtr(), This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_PAUSE_ALL, BoxInfoPtr(), This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::resumeCallback(ProviderEventArgPtr arg, void* data)
@@ -384,10 +384,10 @@ int BoxDaemonImpl::resumeCallback(ProviderEventArgPtr arg, void* data)
     LogD("web-provider is resumed");
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_RESUME_ALL, BoxInfoPtr(), This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_RESUME_ALL, BoxInfoPtr(), This))
+                ? 0 : -1;
 }
 
 int BoxDaemonImpl::updateContentCallback(ProviderEventArgPtr arg, void* data)
@@ -413,10 +413,10 @@ int BoxDaemonImpl::changePeriodCallback(ProviderEventArgPtr arg, void* data)
     LogD("period: %f", info->period);
     LogD("--------------------------------------------");
 
-    JobInfo* jobInfo = new JobInfo(REQUEST_CMD_CHANGE_PERIOD, info, This);
-    Ecore_Job* ret = ecore_job_add(requestBoxJobCallback, jobInfo);
-
-    return ret ? 0 : -1;
+    return ecore_job_add(
+                requestBoxJobCallback,
+                new JobInfo(REQUEST_CMD_CHANGE_PERIOD, info, This))
+                ? 0 : -1;
 }
 
 void BoxDaemonImpl::setProviderCallbacks(ProviderCallbacks& callbacks)
@@ -450,9 +450,10 @@ const char* BoxDaemonImpl::getBoxType(const char* boxId)
     }
     
     const char* type = web_provider_livebox_get_box_type(boxId);
+    std::string boxType;
     if (!type) {
         std::string serviceBoxId(boxId);
-        std::string boxType = m_pluginConnector->getBoxType(serviceBoxId);
+        boxType = m_pluginConnector->getBoxType(serviceBoxId);
         if (boxType.empty()) {
             LogD("unrecognized box id");
             return NULL; 
@@ -482,7 +483,10 @@ BoxInfoPtr BoxDaemonImpl::initializeBoxInfo(ProviderEventArgPtr arg)
         return BoxInfoPtr();
     }
 
-    return BoxInfoPtr(new BoxInfo(type, arg->pkgname, arg->id));
+    BoxInfoPtr infoPtr = BoxInfoPtr(new BoxInfo(type, arg->pkgname, arg->id));
+    delete[] type;
+
+    return infoPtr;
 }
 
 Eina_Bool BoxDaemonImpl::pingToMasterCallback(void* data)
index 9719b43..de79683 100644 (file)
@@ -49,6 +49,7 @@ bool BoxDaemonUtil::launchApplication(std::string& boxId, std::string& instanceI
     if (ret != SERVICE_ERROR_NONE) {
         LogD("failed to set package");
         service_destroy(handle);
+        delete[] appId;
         return false;
     }
 
@@ -59,10 +60,12 @@ bool BoxDaemonUtil::launchApplication(std::string& boxId, std::string& instanceI
     if (ret != SERVICE_ERROR_NONE) {
         LogD("failed to launch package");
         service_destroy(handle);
+        delete[] appId;
         return false;
     }
 
     service_destroy(handle);
     LogD("success to launch app of %s", boxId.c_str());
+    delete[] appId;
     return true;
 }
index 9f62912..3b42b01 100644 (file)
@@ -46,8 +46,9 @@ bool BoxPluginConnector::initialize()
         return false;
     }
 
-    if (!(count > 0)) {
+    if (count <= 0) {
         LogD("There is no available livebox plugins");
+        web_provider_plugin_release_installed_list(pluginList, count);
         return false;
     }