Fix sdcard issue 80/78780/2 accepted/tizen/common/20160707.171604 accepted/tizen/ivi/20160707.043254 accepted/tizen/mobile/20160707.043308 accepted/tizen/tv/20160707.043127 accepted/tizen/wearable/20160707.043302 submit/tizen/20160707.020003
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 7 Jul 2016 01:06:20 +0000 (10:06 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 7 Jul 2016 01:45:07 +0000 (10:45 +0900)
Change-Id: Ib9464072afd091dd540961effe9fb11fc9c9e1e0
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
packaging/libmedia-service.spec
src/common/media-svc-media-folder.c

index ee4e3b2..05dff25 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmedia-service
 Summary:    Media information service library for multimedia applications
-Version: 0.2.73
+Version: 0.2.74
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0 and public domain
index 119a88b..a1a89b1 100755 (executable)
@@ -37,17 +37,36 @@ static int __media_svc_is_root_path(const char *folder_path, bool *is_root, uid_
        media_svc_retvm_if(!STRING_VALID(folder_path), MS_MEDIA_ERR_INVALID_PARAMETER, "folder_path is NULL");
 
        *is_root = FALSE;
-
+       int i = 0;
+       int start_len = 0;
+       int path_len = 0;
        char *internal_path = _media_svc_get_path(uid);
 
-       if ((STRING_VALID(internal_path) && (strcmp(folder_path, internal_path) == 0)) ||
-               (STRING_VALID(MEDIA_ROOT_PATH_SDCARD) && strcmp(folder_path, MEDIA_ROOT_PATH_SDCARD) == 0) ||
-               (STRING_VALID(MEDIA_ROOT_PATH_CLOUD) && strcmp(folder_path, MEDIA_ROOT_PATH_CLOUD) == 0)) {
+       if (STRING_VALID(internal_path) && (strcmp(folder_path, internal_path) == 0)) {
                media_svc_debug("ROOT PATH [%s]", folder_path);
                *is_root = TRUE;
-       }
 
+               SAFE_FREE(internal_path);
+
+               return MS_MEDIA_ERR_NONE;
+       }
        SAFE_FREE(internal_path);
+
+       if ((STRING_VALID(MEDIA_ROOT_PATH_SDCARD) && strncmp(folder_path, MEDIA_ROOT_PATH_SDCARD, strlen(MEDIA_ROOT_PATH_SDCARD)) == 0) ||
+               (STRING_VALID(MEDIA_ROOT_PATH_CLOUD) && strncmp(folder_path, MEDIA_ROOT_PATH_CLOUD, strlen(MEDIA_ROOT_PATH_CLOUD)) == 0)) {
+
+               start_len = strlen(MEDIA_ROOT_PATH_SDCARD);
+               path_len = strlen(folder_path);
+
+               for (i = start_len; i < path_len; i++) {
+                       if (folder_path[i] == '/')
+                               return MS_MEDIA_ERR_NONE;
+               }
+
+               media_svc_debug("ROOT PATH [%s]", folder_path);
+               *is_root = TRUE;
+       }
+
        return MS_MEDIA_ERR_NONE;
 }