Add private privilege getter logic
authorhb.min <hb.min@samsung.com>
Tue, 7 May 2013 13:53:53 +0000 (22:53 +0900)
committerhb.min <hb.min@samsung.com>
Tue, 7 May 2013 13:53:53 +0000 (22:53 +0900)
Change-Id: I9f8ceb7acf7024d86aa375c1fbecfcbf8d6372b8
Signed-off-by: hb.min <hb.min@samsung.com>
src/security/FSec_PrivilegeManager.cpp

index 9903ac4..d30b350 100644 (file)
@@ -133,6 +133,7 @@ _PrivilegeManager::GetPrivilegeListN(const AppId& appId)
        String encryptedPrivileges;
        String checksum;
        ArrayList* pPrivilegeList = null;
+       IEnumerator* pEnum = null;
 
        ClearLastResult();
 
@@ -153,6 +154,15 @@ _PrivilegeManager::GetPrivilegeListN(const AppId& appId)
        pReturnPrivilegeList = UnpackPrivilegeN(pTargetBitwisePrivilege);
        SysTryCatch(NID_SEC,  pReturnPrivilegeList != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");
 
+       pEnum = pPrivilegeList->GetEnumeratorN();
+       SysTryCatch(NID_SEC,  pEnum != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");
+
+       while (pEnum->MoveNext() == E_SUCCESS)
+       {
+               String* tempString = static_cast< String* >(pEnum->GetCurrent());
+               pReturnPrivilegeList->Add(new String(*tempString));
+       }
+
        // fall through
 
 CATCH:
@@ -169,6 +179,11 @@ CATCH:
                pTargetBitwisePrivilege = null;
        }
 
+       if (pEnum)
+       {
+               delete pEnum;
+       }
+
        return pReturnPrivilegeList;
 }