diff --git a/common/include/daudio_errorcode.h b/common/include/daudio_errorcode.h index f0307dcc515c784453d4169b81e5e25bf964a19c..1f8fdb59a87d41c68ceb6913509c1b4712772c53 100644 --- a/common/include/daudio_errorcode.h +++ b/common/include/daudio_errorcode.h @@ -36,6 +36,7 @@ enum DAudioErrorCode { ERR_DH_AUDIO_SA_STATUS_ERR = -40012, ERR_DH_AUDIO_NOT_FOUND_KEY = -40013, ERR_DH_AUDIO_SA_DEVID_ILLEGAL = -40014, + ERR_DH_AUDIO_SA_PERMISSION_FAIED = -40015, // trans error ERR_DH_AUDIO_TRANS_ERROR = -40015, diff --git a/services/audiomanager/servicesink/include/daudio_sink_stub.h b/services/audiomanager/servicesink/include/daudio_sink_stub.h index d16b57eba0a23bd3ebe885d189337daf8f7cd832..f9000041dcc0adef89cb1974a3cd5b8212002eeb 100644 --- a/services/audiomanager/servicesink/include/daudio_sink_stub.h +++ b/services/audiomanager/servicesink/include/daudio_sink_stub.h @@ -36,7 +36,7 @@ private: int32_t SubscribeLocalHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); int32_t UnsubscribeLocalHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); int32_t DAudioNotifyInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); - bool VerifyPass(); + bool VerifyPermission(); using DAudioSinkServiceFunc = int32_t (DAudioSinkStub::*)(MessageParcel &data, MessageParcel &reply, MessageOption &option); diff --git a/services/audiomanager/servicesink/src/daudio_sink_stub.cpp b/services/audiomanager/servicesink/src/daudio_sink_stub.cpp index efa1645bdd1e06b45361aace9dd596a1ae9771a8..77d9b00fc9eebf79aa4f0a377da50824e1c351e0 100644 --- a/services/audiomanager/servicesink/src/daudio_sink_stub.cpp +++ b/services/audiomanager/servicesink/src/daudio_sink_stub.cpp @@ -68,7 +68,7 @@ int32_t DAudioSinkStub::OnRemoteRequest(uint32_t code, MessageParcel &data, Mess return (this->*func)(data, reply, option); } -bool DAudioSinkStub::VerifyPass() +bool DAudioSinkStub::VerifyPermission() { Security::AccessToken::AccessTokenID callerToken = IPCSkeleton::GetCallingTokenID(); int result = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, AUDIO_PERMISSION_NAME); @@ -80,10 +80,9 @@ bool DAudioSinkStub::VerifyPass() int32_t DAudioSinkStub::InitSinkInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (VerifyPass()) { - DHLOGI("Permission verification success."); - } else { + if (!VerifyPermission()) { DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string param = data.ReadString(); int32_t ret = InitSink(param); @@ -93,10 +92,9 @@ int32_t DAudioSinkStub::InitSinkInner(MessageParcel &data, MessageParcel &reply, int32_t DAudioSinkStub::ReleaseSinkInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (VerifyPass()) { - DHLOGI("Permission verification success."); - } else { + if (!VerifyPermission()) { DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } int32_t ret = ReleaseSink(); reply.WriteInt32(ret); diff --git a/services/audiomanager/servicesource/include/daudio_source_stub.h b/services/audiomanager/servicesource/include/daudio_source_stub.h index ae8879955efb26b10aee5983a30d17817df4f5de..7cef6bb263e81825444ec46e44ec9ed28d157514 100644 --- a/services/audiomanager/servicesource/include/daudio_source_stub.h +++ b/services/audiomanager/servicesource/include/daudio_source_stub.h @@ -37,7 +37,7 @@ private: int32_t UnregisterDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); int32_t ConfigDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); int32_t DAudioNotifyInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); - bool VerifyPass(); + bool VerifyPermission(); using DAudioSourceServiceFunc = int32_t (DAudioSourceStub::*)(MessageParcel &data, MessageParcel &reply, MessageOption &option); diff --git a/services/audiomanager/servicesource/src/daudio_source_stub.cpp b/services/audiomanager/servicesource/src/daudio_source_stub.cpp index 44b8bee014a8584b93509c8fc6e6c6c02ecf62b4..2ddea3bee9863a0b7e9eb5d46de01e0e3976033d 100644 --- a/services/audiomanager/servicesource/src/daudio_source_stub.cpp +++ b/services/audiomanager/servicesource/src/daudio_source_stub.cpp @@ -65,7 +65,7 @@ int32_t DAudioSourceStub::OnRemoteRequest(uint32_t code, MessageParcel &data, Me return (this->*func)(data, reply, option); } -bool DAudioSourceStub::VerifyPass() +bool DAudioSourceStub::VerifyPermission() { Security::AccessToken::AccessTokenID callerToken = IPCSkeleton::GetCallingTokenID(); int result = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, AUDIO_PERMISSION_NAME); @@ -77,10 +77,9 @@ bool DAudioSourceStub::VerifyPass() int32_t DAudioSourceStub::InitSourceInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (VerifyPass()) { - DHLOGI("Permission verification success."); - } else { + if (!VerifyPermission()) { DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string param = data.ReadString(); sptr remoteObject = data.ReadRemoteObject(); @@ -97,10 +96,9 @@ int32_t DAudioSourceStub::InitSourceInner(MessageParcel &data, MessageParcel &re int32_t DAudioSourceStub::ReleaseSourceInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (VerifyPass()) { - DHLOGI("Permission verification success."); - } else { + if (!VerifyPermission()) { DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } int32_t ret = ReleaseSource(); reply.WriteInt32(ret); @@ -110,10 +108,9 @@ int32_t DAudioSourceStub::ReleaseSourceInner(MessageParcel &data, MessageParcel int32_t DAudioSourceStub::RegisterDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (VerifyPass()) { - DHLOGI("Permission verification success."); - } else { + if (!VerifyPermission()) { DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string networkId = data.ReadString(); std::string dhId = data.ReadString(); @@ -132,10 +129,9 @@ int32_t DAudioSourceStub::RegisterDistributedHardwareInner(MessageParcel &data, int32_t DAudioSourceStub::UnregisterDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (VerifyPass()) { - DHLOGI("Permission verification success."); - } else { + if (!VerifyPermission()) { DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string networkId = data.ReadString(); std::string dhId = data.ReadString();