fix clear data behavior 66/71866/3
authorjongmyeongko <jongmyeong.ko@samsung.com>
Fri, 27 May 2016 10:43:53 +0000 (19:43 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Tue, 31 May 2016 00:40:43 +0000 (09:40 +0900)
Change-Id: I272de791ac3973e3ca9530f0dba1855aeda75474
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
src/request.c

index e4dda11..58987d9 100644 (file)
@@ -779,6 +779,7 @@ static int __handle_request_cleardata(uid_t uid,
        uid_t target_uid = (uid_t)-1;
        char *pkgtype = NULL;
        char *pkgid = NULL;
+       char *reqkey = NULL;
 
        g_variant_get(parameters, "(u&s&s)", &target_uid, &pkgtype, &pkgid);
        if (target_uid == (uid_t)-1 || pkgtype == NULL || pkgid == NULL) {
@@ -787,7 +788,11 @@ static int __handle_request_cleardata(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_CLEARDATA, "pkgtool",
+       reqkey = __generate_reqkey(pkgid);
+       if (reqkey == NULL)
+               return -1;
+
+       if (_pm_queue_push(target_uid, reqkey, PKGMGR_REQUEST_TYPE_CLEARDATA, pkgtype,
                                pkgid, "")) {
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", PKGMGR_R_ESYSTEM));
@@ -797,6 +802,8 @@ static int __handle_request_cleardata(uid_t uid,
        g_dbus_method_invocation_return_value(invocation,
                        g_variant_new("(i)", PKGMGR_R_OK));
 
+       free(reqkey);
+
        return 0;
 }