Fix resource leak
[platform/core/appfw/pkgmgr-server.git] / src / pkgmgr-server.c
index 89338ea..38fdaa2 100644 (file)
@@ -482,7 +482,7 @@ static int __check_csr(const char *path)
        }
 
        if (malware != NULL) {
-               ERR("CSR denied[%d] installation", path);
+               ERR("CSR detected malware from [%s]", path);
                ret = -1;
        }
 
@@ -510,7 +510,7 @@ static int __kill_app(char *appid, uid_t uid)
 
        ret = aul_terminate_pid_for_uid(pid, uid);
        if (ret != AUL_R_OK) {
-               ERR("failed to terminate app(%d)", appid);
+               ERR("failed to terminate app(%s)", appid);
                return -1;
        }
 
@@ -841,9 +841,13 @@ static int __process_install(struct backend_job *job)
                return -1;
 
        req_id = g_shell_quote(job->req_id);
+       if (!req_id)
+               return -1;
        pkgid = g_shell_quote(job->pkgid);
-       if (!req_id || !pkgid)
+       if (!pkgid) {
+               g_free(req_id);
                return -1;
+       }
 
        snprintf(args, sizeof(args), "%s -k %s -i %s -u %d %s", backend_cmd,
                        req_id, pkgid, (int)job->target_uid, job->args);
@@ -872,10 +876,13 @@ static int __process_mount_install(struct backend_job *job)
                return -1;
 
        req_id = g_shell_quote(job->req_id);
+       if (!req_id)
+               return -1;
        pkgid = g_shell_quote(job->pkgid);
-       if (!req_id || !pkgid)
+       if (!pkgid) {
+               g_free(req_id);
                return -1;
-
+       }
        snprintf(args, sizeof(args), "%s -k %s -w %s -u %d %s", backend_cmd,
                        req_id, pkgid, (int)job->target_uid, job->args);
 
@@ -903,9 +910,13 @@ static int __process_reinstall(struct backend_job *job)
                return -1;
 
        req_id = g_shell_quote(job->req_id);
+       if (!req_id)
+               return -1;
        pkgid = g_shell_quote(job->pkgid);
-       if (!req_id || !pkgid)
+       if (!pkgid) {
+               g_free(req_id);
                return -1;
+       }
 
        snprintf(args, sizeof(args), "%s -k %s -r %s -u %d", backend_cmd,
                        req_id, pkgid, (int)job->target_uid);
@@ -1354,6 +1365,7 @@ static int __process_getsize_sync(struct backend_job *job)
                goto error;
        }
 
+       job->extra_data = extra_getsize_info;
        extra_getsize_info->getsize_fifo = strdup(fifo_path);
        if (!extra_getsize_info->getsize_fifo) {
                ERR("out of memory");
@@ -1364,7 +1376,6 @@ static int __process_getsize_sync(struct backend_job *job)
                ERR("failed to mkfifo");
                goto error;
        }
-       job->extra_data = extra_getsize_info;
 
        snprintf(args, sizeof(args), "%s %s %s %d -k %s -u %d --sync",
                        backend_cmd, job->pkgid, job->args, job->caller_uid,
@@ -1761,6 +1772,17 @@ static int __process_set_app_label(struct backend_job *job)
        return ret;
 }
 
+static int __process_set_app_icon(struct backend_job *job)
+{
+       int ret;
+
+       ret = pkgmgr_parser_update_app_icon_info_in_usr_db(job->pkgid,
+                       job->target_uid, job->args);
+       _return_value_to_caller(job->req_id, g_variant_new("(i)", ret));
+
+       return ret;
+}
+
 static int __process_migrate_external_image(struct backend_job *job)
 {
        char *backend_cmd;
@@ -1977,6 +1999,10 @@ gboolean queue_job(void *data)
                ret = __process_set_app_label(job);
                _free_backend_job(job);
                break;
+       case REQUEST_TYPE_SET_APP_ICON:
+               ret = __process_set_app_icon(job);
+               _free_backend_job(job);
+               break;
        case REQUEST_TYPE_MIGRATE_EXTERNAL_IMAGE:
                __set_backend_busy(x);
                __set_power_lock();