Generate request key for cleardata request 43/58243/2 accepted/tizen/ivi/20160218.023227 accepted/tizen/mobile/20160202.114608 accepted/tizen/mobile/20160203.051935 accepted/tizen/tv/20160202.114654 accepted/tizen/tv/20160203.051948 accepted/tizen/wearable/20160202.114733 accepted/tizen/wearable/20160203.052020 submit/tizen/20160202.002216 submit/tizen/20160202.010556 submit/tizen/20160202.023804 submit/tizen/20160203.003555 submit/tizen_common/20160218.142243 submit/tizen_ivi/20160217.000000 submit/tizen_ivi/20160217.000002
authorTomasz Iwanek <t.iwanek@samsung.com>
Thu, 28 Jan 2016 13:43:40 +0000 (14:43 +0100)
committerjongmyeong ko <jongmyeong.ko@samsung.com>
Mon, 1 Feb 2016 09:05:12 +0000 (01:05 -0800)
Fixes the problem that backend is called with missing key.

  backend -k -c $pkgid

should be:

  backend -k $key -c $pkgid

as pkgmgr_installer option parser requires key.

Change-Id: Ie616e3b928f52c0e5ce2c1f6fa738ebd47af13fb

src/request.c

index 8968807..ba202b2 100644 (file)
@@ -599,6 +599,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) {
@@ -607,7 +608,11 @@ static int __handle_request_cleardata(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_CLEARDATA, pkgtype,
+       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));