}
for (i = 0; i < args_count; i++) {
- s += strlen(tmp_args[i]);
strncat(args, tmp_args[i], len - s - 1);
+ s += strlen(tmp_args[i]);
if (i != args_count - 1) {
- s += strlen(" ");
strncat(args, " ", len - s - 1);
+ s += strlen(" ");
}
}
}
for (i = 0; i < args_count; i++) {
- s += strlen(tmp_args[i]);
strncat(args, tmp_args[i], len - s - 1);
+ s += strlen(tmp_args[i]);
if (i != args_count - 1) {
- s += strlen(" ");
strncat(args, " ", len - s - 1);
+ s += strlen(" ");
}
}
{
uid_t target_uid = (uid_t)-1;
char *pkgid = NULL;
+ char *pkgtype;
g_variant_get(parameters, "(u&s)", &target_uid, &pkgid);
if (target_uid == (uid_t)-1 || pkgid == NULL) {
return -1;
}
+ pkgtype = _get_pkgtype_from_pkgid(pkgid, target_uid);
+ if (pkgtype == NULL) {
+ g_dbus_method_invocation_return_value(invocation,
+ g_variant_new("(is)", PKGMGR_R_ENOPKG, ""));
+ return -1;
+ }
+
if (_push_queue(target_uid, caller_uid, NULL, REQUEST_TYPE_CLEARDATA,
- "pkgtool", pkgid, NULL)) {
+ pkgtype, pkgid, NULL)) {
g_dbus_method_invocation_return_value(invocation,
g_variant_new("(i)", PKGMGR_R_ESYSTEM));
return -1;
{
uid_t target_uid = (uid_t)-1;
char *pkgid = NULL;
+ char *pkgtype;
g_variant_get(parameters, "(u&s)", &target_uid, &pkgid);
if (target_uid == (uid_t)-1 || pkgid == NULL) {
return -1;
}
+ if (strcmp(PKG_CLEAR_ALL_CACHE, pkgid) == 0)
+ pkgtype = strdup("pkgtool");
+ else
+ pkgtype = _get_pkgtype_from_pkgid(pkgid, target_uid);
+ if (pkgtype == NULL) {
+ g_dbus_method_invocation_return_value(invocation,
+ g_variant_new("(is)", PKGMGR_R_ENOPKG, ""));
+ return -1;
+ }
+
if (_push_queue(target_uid, caller_uid, NULL, REQUEST_TYPE_CLEARCACHE,
- "pkgtool", pkgid, NULL)) {
+ pkgtype, pkgid, NULL)) {
g_dbus_method_invocation_return_value(invocation,
g_variant_new("(i)", PKGMGR_R_ESYSTEM));
return -1;