Fix not exist privilege check bug of web under 2.3.1 36/108236/2
authorYunjin Lee <yunjin-.lee@samsung.com>
Tue, 3 Jan 2017 11:47:03 +0000 (20:47 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Thu, 12 Jan 2017 04:39:10 +0000 (13:39 +0900)
Change-Id: Icb1aebf4239ca4c31bf5bc24686da0f034c26135
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
capi/src/privilege_manager.c
test/tc-privilege-manager.c

index deb1720..741d76a 100755 (executable)
@@ -308,8 +308,10 @@ int privilege_manager_verify_privilege(uid_t uid, const char *api_version, privi
                }
                ret = __privilege_manager_check_privilege_list(api_version, privilege_name, valid_privilege_list, &privilege_level_id, &changed_to, &valid_api_version);
 
-               if (is_valid_wrt_version == 0)
-                       ret = PRVMGR_ERR_NONE;
+               if (is_valid_wrt_version == 0) {
+                       if (strstr(privilege_name, "/internal/") == NULL)
+                               ret = PRVMGR_ERR_NONE;
+               }
 
                if (ret == PRVMGR_ERR_NO_EXIST_PRIVILEGE) {
                        memset(message, 0, MESSAGE_SIZE);
index 47f52aa..1bf9478 100755 (executable)
@@ -360,6 +360,13 @@ static void __test_privilege_manager_verify_privilege()
        __tcinfo(expect, PRVMGR_ERR_NONE);
        __privilege_manager_verify_privilege();
 
+       __tcinfo(version_type, "2.2.1", "wrt");
+       __tcinfo(goal, "valid api_version == 2.2.1, check internal privilege");
+       __privinfo("http://tizen.org/privilege/internal/public", "Public", NULL);
+       __tcinfo(cert_level, "public");
+       __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE);
+       __privilege_manager_verify_privilege();
+
 #ifdef PROFILE_TYPE_MOBILE
 
        /* 2.3 core - mobile */