From 173a0c6ad3fc181e9a5af6a0a8e148a81c214ec9 Mon Sep 17 00:00:00 2001 From: huaqingsimeng <1004904143@qq.com> Date: Wed, 26 Jul 2023 16:31:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=87=E4=BB=BD=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=E5=A4=9A=E7=94=A8=E6=88=B7=E5=9C=BA=E6=99=AFuserid?= =?UTF-8?q?=E5=80=BC=E8=8E=B7=E5=8F=96=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huaqingsimeng --- services/backup_sa/src/module_ipc/service.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/services/backup_sa/src/module_ipc/service.cpp b/services/backup_sa/src/module_ipc/service.cpp index aec7bbd0a..cb5b7ef2c 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -58,12 +58,13 @@ using namespace std; REGISTER_SYSTEM_ABILITY_BY_ID(Service, FILEMANAGEMENT_BACKUP_SERVICE_SA_ID, false); /* Shell/Xts user id equal to 0/1, we need set default 100 */ -static inline int32_t GetUserIdDefault(int32_t userId) +static inline int32_t GetUserIdDefault() { - if ((userId == BConstants::SYSTEM_UID) || (userId == BConstants::XTS_UID)) { + auto multiuser = BMultiuser::ParseUid(IPCSkeleton::GetCallingUid()); + if ((multiuser.userId == BConstants::SYSTEM_UID) || (multiuser.userId == BConstants::XTS_UID)) { return BConstants::DEFAULT_USER_ID; } - return userId; + return multiuser.userId; } void Service::OnStart() @@ -89,7 +90,7 @@ UniqueFd Service::GetLocalCapabilities() Only called by restore app before InitBackupSession, so there must be set init userId. */ - session_->SetSessionUserId(GetUserIdDefault(IPCSkeleton::GetCallingUid())); + session_->SetSessionUserId(GetUserIdDefault()); VerifyCaller(); string path = BConstants::GetSaBundleBackupRootDir(session_->GetSessionUserId()); BExcepUltils::VerifyPath(path, false); @@ -177,7 +178,7 @@ ErrCode Service::InitRestoreSession(sptr remote) .clientToken = IPCSkeleton::GetCallingTokenID(), .scenario = IServiceReverse::Scenario::RESTORE, .clientProxy = remote, - .userId = GetUserIdDefault(IPCSkeleton::GetCallingUid()), + .userId = GetUserIdDefault(), }); return BError(BError::Codes::OK); } catch (const BError &e) { @@ -200,7 +201,7 @@ ErrCode Service::InitBackupSession(sptr remote) .clientToken = IPCSkeleton::GetCallingTokenID(), .scenario = IServiceReverse::Scenario::BACKUP, .clientProxy = remote, - .userId = GetUserIdDefault(IPCSkeleton::GetCallingUid()), + .userId = GetUserIdDefault(), }); return BError(BError::Codes::OK); } catch (const BError &e) { -- Gitee