From 0dc24379ffa20320fb908e8e6e0c7fe47c4bfa0c Mon Sep 17 00:00:00 2001 From: l00520400 Date: Sat, 26 Feb 2022 17:07:57 +0800 Subject: [PATCH] Signed-off-by: l00520400 Change-Id: I91446f56255f7333f21b136300db4dda6c72e362 Signed-off-by: l00520400 Change-Id: I52295a44ad19eb1965ce970faa6d7bfa56cdef1b --- .../nativetoken/include/nativetoken.h | 2 +- .../innerkits/nativetoken/src/nativetoken.c | 39 ++++++++++--------- .../include/token/accesstoken_id_manager.h | 2 +- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/interfaces/innerkits/nativetoken/include/nativetoken.h b/interfaces/innerkits/nativetoken/include/nativetoken.h index 573c65178..8d8f48191 100644 --- a/interfaces/innerkits/nativetoken/include/nativetoken.h +++ b/interfaces/innerkits/nativetoken/include/nativetoken.h @@ -44,7 +44,7 @@ extern "C" { #define MAX_PARAMTER_LEN 128 #define SYSTEM_PROP_NATIVE_RECEPTOR "rw.nativetoken.receptor.startup" #define PATH_MAX_LEN 4096 -#define MAX_RETRY_TIMES 1000 +#define MAX_RETRY_TIMES 32 #define TOKEN_RANDOM_MASK ((1 << 20) - 1) #define ATRET_FAILED 1 diff --git a/interfaces/innerkits/nativetoken/src/nativetoken.c b/interfaces/innerkits/nativetoken/src/nativetoken.c index 4e09e88b1..328606a1f 100644 --- a/interfaces/innerkits/nativetoken/src/nativetoken.c +++ b/interfaces/innerkits/nativetoken/src/nativetoken.c @@ -498,8 +498,8 @@ void SaveTokenIdToCfg(const NativeTokenList *curr) return; } -uint32_t CheckProcessInfo(const char *processname, const char **dcaps, - int32_t dacpNum, const char *aplStr, int32_t *aplRet) +static uint32_t CheckProcessInfo(const char *processname, const char **dcaps, + int32_t dcapNum, const char *aplStr, int32_t *aplRet) { if ((processname == NULL) || strlen(processname) > MAX_PROCESS_NAME_LEN || strlen(processname) == 0) { @@ -507,11 +507,11 @@ uint32_t CheckProcessInfo(const char *processname, const char **dcaps, return ATRET_FAILED; } - if (((dcaps == NULL) && (dacpNum != 0)) || dacpNum > MAX_DCAPS_NUM || dacpNum < 0) { - ACCESSTOKEN_LOG_ERROR("[ATLIB-%s]:dcaps is null or dacpNum is invalid.", __func__); + if (((dcaps == NULL) && (dcapNum != 0)) || dcapNum > MAX_DCAPS_NUM || dcapNum < 0) { + ACCESSTOKEN_LOG_ERROR("[ATLIB-%s]:dcaps is null or dcapNum is invalid.", __func__); return ATRET_FAILED; } - for (int32_t i = 0; i < dacpNum; i++) { + for (int32_t i = 0; i < dcapNum; i++) { if (strlen(dcaps[i]) > MAX_DCAP_LEN) { ACCESSTOKEN_LOG_ERROR("[ATLIB-%s]:dcap length is invalid.", __func__); return ATRET_FAILED; @@ -527,7 +527,7 @@ uint32_t CheckProcessInfo(const char *processname, const char **dcaps, } static uint32_t AddNewTokenToListAndCfgFile(const char *processname, const char **dcapsIn, - int32_t dacpNumIn, int32_t aplIn, NativeAtId *tokenId) + int32_t dcapNumIn, int32_t aplIn, NativeAtId *tokenId) { NativeTokenList *tokenNode; NativeAtId id; @@ -549,9 +549,9 @@ static uint32_t AddNewTokenToListAndCfgFile(const char *processname, const char free(tokenNode); return ATRET_FAILED; } - tokenNode->dcapsNum = dacpNumIn; + tokenNode->dcapsNum = dcapNumIn; - for (int32_t i = 0; i < dacpNumIn; i++) { + for (int32_t i = 0; i < dcapNumIn; i++) { tokenNode->dcaps[i] = (char *)malloc(sizeof(char) * (strlen(dcapsIn[i]) + 1)); if (tokenNode->dcaps[i] != NULL && (strcpy_s(tokenNode->dcaps[i], strlen(dcapsIn[i]) + 1, dcapsIn[i]) != EOK)) { @@ -570,15 +570,15 @@ static uint32_t AddNewTokenToListAndCfgFile(const char *processname, const char return ATRET_SUCCESS; } -int32_t CompareProcessInfo(NativeTokenList *tokenNode, const char **dcapsIn, int32_t dacpNumIn, int32_t aplIn) +int32_t CompareProcessInfo(NativeTokenList *tokenNode, const char **dcapsIn, int32_t dcapNumIn, int32_t aplIn) { if (tokenNode->apl != aplIn) { return 1; } - if (tokenNode->dcapsNum != dacpNumIn) { + if (tokenNode->dcapsNum != dcapNumIn) { return 1; } - for (int32_t i = 0; i < dacpNumIn; i++) { + for (int32_t i = 0; i < dcapNumIn; i++) { if (strcmp(tokenNode->dcaps[i], dcapsIn[i]) != 0) { return 1; } @@ -586,7 +586,8 @@ int32_t CompareProcessInfo(NativeTokenList *tokenNode, const char **dcapsIn, int return 0; } -uint32_t UpdateTokenInfoInList(NativeTokenList *tokenNode, const char **dcapsIn, int32_t dacpNumIn, int32_t aplIn) +static uint32_t UpdateTokenInfoInList(NativeTokenList *tokenNode, + const char **dcapsIn, int32_t dcapNumIn, int32_t aplIn) { tokenNode->apl = aplIn; @@ -595,8 +596,8 @@ uint32_t UpdateTokenInfoInList(NativeTokenList *tokenNode, const char **dcapsIn, tokenNode->dcaps[i] = NULL; } - tokenNode->dcapsNum = dacpNumIn; - for (int32_t i = 0; i < dacpNumIn; i++) { + tokenNode->dcapsNum = dcapNumIn; + for (int32_t i = 0; i < dcapNumIn; i++) { int32_t len = strlen(dcapsIn[i]) + 1; tokenNode->dcaps[i] = (char *)malloc(sizeof(char) * len); if (tokenNode->dcaps[i] != NULL && (strcpy_s(tokenNode->dcaps[i], len, dcapsIn[i]) != EOK)) { @@ -702,7 +703,7 @@ uint32_t UpdateTokenInfoInCfgFile(NativeTokenList *tokenNode) return ATRET_SUCCESS; } -uint64_t GetAccessTokenId(const char *processname, const char **dcaps, int32_t dacpNum, const char *aplStr) +uint64_t GetAccessTokenId(const char *processname, const char **dcaps, int32_t dcapNum, const char *aplStr) { NativeAtId tokenId = 0; uint64_t result = 0; @@ -713,7 +714,7 @@ uint64_t GetAccessTokenId(const char *processname, const char **dcaps, int32_t d return 0; } - uint32_t ret = CheckProcessInfo(processname, dcaps, dacpNum, aplStr, &apl); + uint32_t ret = CheckProcessInfo(processname, dcaps, dcapNum, aplStr, &apl); if (ret != ATRET_SUCCESS) { return 0; } @@ -728,11 +729,11 @@ uint64_t GetAccessTokenId(const char *processname, const char **dcaps, int32_t d } if (tokenNode == NULL) { - ret = AddNewTokenToListAndCfgFile(processname, dcaps, dacpNum, apl, &tokenId); + ret = AddNewTokenToListAndCfgFile(processname, dcaps, dcapNum, apl, &tokenId); } else { - int32_t needUpdate = CompareProcessInfo(tokenNode, dcaps, dacpNum, apl); + int32_t needUpdate = CompareProcessInfo(tokenNode, dcaps, dcapNum, apl); if (needUpdate != 0) { - ret = UpdateTokenInfoInList(tokenNode, dcaps, dacpNum, apl); + ret = UpdateTokenInfoInList(tokenNode, dcaps, dcapNum, apl); ret |= UpdateTokenInfoInCfgFile(tokenNode); } } diff --git a/services/accesstokenmanager/main/cpp/include/token/accesstoken_id_manager.h b/services/accesstokenmanager/main/cpp/include/token/accesstoken_id_manager.h index 4d4ac8ba4..a4cc97c87 100644 --- a/services/accesstokenmanager/main/cpp/include/token/accesstoken_id_manager.h +++ b/services/accesstokenmanager/main/cpp/include/token/accesstoken_id_manager.h @@ -27,7 +27,7 @@ namespace OHOS { namespace Security { namespace AccessToken { static constexpr unsigned int TOKEN_RANDOM_MASK = (1 << 20) - 1; -static const int MAX_CREATE_TOKEN_ID_RETRY = 1000; +static const int MAX_CREATE_TOKEN_ID_RETRY = 32; class AccessTokenIDManager final { public: -- Gitee