From e9ff4739d975042f72e55ea574d71c76519001df Mon Sep 17 00:00:00 2001 From: jiangminsen Date: Wed, 6 Mar 2024 10:15:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E6=A0=A1=E9=AA=8C=E6=94=BE?= =?UTF-8?q?=E8=BF=87=E8=87=AA=E5=B7=B1=E8=BF=9B=E7=A8=8B=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiangminsen --- services/dbms/src/distributed_bms.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/dbms/src/distributed_bms.cpp b/services/dbms/src/distributed_bms.cpp index 8b94052..29df486 100644 --- a/services/dbms/src/distributed_bms.cpp +++ b/services/dbms/src/distributed_bms.cpp @@ -57,6 +57,7 @@ namespace { const unsigned char DECODE_VALUE_CHAR_THREE = 3; const uint8_t DECODE_VALUE_FOUR = 4; const uint8_t DECODE_VALUE_SIX = 6; + const uint32_t DBMS_UID = 6000; const unsigned char DECODE_VALUE_CHAR_FIFTEEN = 15; const unsigned char DECODE_VALUE_CHAR_SIXTY_THREE = 63; const std::vector DECODE_TABLE = { @@ -573,8 +574,10 @@ bool DistributedBms::VerifyCallingPermission(const std::string &permissionName) { APP_LOGD("VerifyCallingPermission permission %{public}s", permissionName.c_str()); Security::AccessToken::AccessTokenID callerToken = IPCSkeleton::GetCallingTokenID(); + auto uid = IPCSkeleton::GetCallingUid(); + APP_LOGD("VerifyCallingPermission callingUid %{public}d", uid); int32_t ret = OHOS::Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, permissionName); - if (ret == OHOS::Security::AccessToken::PermissionState::PERMISSION_DENIED) { + if ((ret == OHOS::Security::AccessToken::PermissionState::PERMISSION_DENIED) && (uid != DBMS_UID)) { APP_LOGE("permission %{public}s: PERMISSION_DENIED", permissionName.c_str()); return false; } -- Gitee