Fix non-sharing problem of trusted directory for OSP compatible application
authorHyunbin Lee <hyunbin.lee@samsung.com>
Thu, 11 Apr 2013 06:44:57 +0000 (15:44 +0900)
committerHyunbin Lee <hyunbin.lee@samsung.com>
Thu, 11 Apr 2013 06:44:57 +0000 (15:44 +0900)
Change-Id: I176100400cd6ea577b5de9843ebcc204b156e357
Signed-off-by: Hyunbin Lee <hyunbin.lee@samsung.com>
osp-env-config.c

index ba389df..9d732e6 100644 (file)
@@ -360,8 +360,10 @@ mount_osp_internal_paths(const char* app_rootpath, const char* pkgid)
 static int
 link_osp_share_path(const char* app_rootpath, const char* pkgid)
 {
-    char osp_app_share_path[PATH_MAX] = {0, };
-    char osp_share_pkgid_path[PATH_MAX] = {0, };
+    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);
@@ -370,16 +372,32 @@ link_osp_share_path(const char* app_rootpath, const char* pkgid)
     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 != 17) // EEXIST
+    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;
 }