}
static int
-link_osp_share_path(const char* app_rootpath, const char* pkgid)
-{
- char osp_app_share_path[PATH_MAX] = { 0, };
- char osp_app_share2_path[PATH_MAX] = { 0, };
- char osp_share_pkgid_path[PATH_MAX] = { 0, };
- char osp_share2_pkgid_path[PATH_MAX] = { 0, };
-
- strncpy(osp_app_share_path, app_rootpath, strlen(app_rootpath));
- strncat(osp_app_share_path, "/shared/data", 12);
-
- strncpy(osp_share_pkgid_path, _OSP_COMPAT_SHARED_PATH, strlen(_OSP_COMPAT_SHARED_PATH));
- strncat(osp_share_pkgid_path, "share/", 6);
- strncat(osp_share_pkgid_path, pkgid, strlen(pkgid));
-
- strncpy(osp_app_share2_path, app_rootpath, strlen(app_rootpath));
- strncat(osp_app_share2_path, "/shared/trusted", 15);
-
- strncpy(osp_share2_pkgid_path, _OSP_COMPAT_SHARED_PATH, strlen(_OSP_COMPAT_SHARED_PATH));
- strncat(osp_share2_pkgid_path, "share2/", 7);
- strncat(osp_share2_pkgid_path, pkgid, strlen(pkgid));
-
- unlink(osp_share_pkgid_path);
- unlink(osp_share2_pkgid_path);
-
- int ret = symlink(osp_app_share_path, osp_share_pkgid_path);
- if (ret == -1 && errno != EEXIST)
- {
- LOGE("symlink() failed, src path: %s, dest path: %s, errno: %d (%s)",
- osp_app_share_path, osp_share_pkgid_path, errno, strerror(errno));
- return -1;
- }
-
- ret = symlink(osp_app_share2_path, osp_share2_pkgid_path);
- if (ret == -1 && errno != EEXIST)
- {
- LOGE("symlink() failed, src path: %s, dest path: %s, errno: %d (%s)",
- osp_app_share2_path, osp_share2_pkgid_path, errno, strerror(errno));
- return -1;
- }
-
- return 0;
-}
-
-static int
create_osp_external_paths(const char* app_rootpath, const char* pkgid)
{
char osp_ext_apps_pkgid_path[PATH_MAX] = {0, };
goto ERROR;
}
- if (link_osp_share_path(app_rootpath, package_id) != 0)
- {
- goto ERROR;
- }
-
LOGI("[data_caging] do_pre_exec() succeeded.");
free(app_rootpath);
return 0;