From: Hwankyu Jhun Date: Fri, 8 Mar 2024 05:13:10 +0000 (+0900) Subject: Check widget viewer privilege X-Git-Tag: accepted/tizen/unified/20240313.134714~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb54a474144f6243fbbd75bd3b5d8957ecebe5aa;p=platform%2Fcore%2Fappfw%2Famd.git Check widget viewer privilege If the port name is "ScreenConnectorInput", amd checks whether the caller has a privilege related to widget viewer or not. Change-Id: I15019d879a2633099bebf8aa1ed5995a991e9f15 Signed-off-by: Hwankyu Jhun --- diff --git a/src/modules/rpc-port/amd_rpc_port.cc b/src/modules/rpc-port/amd_rpc_port.cc index 0963c6ca..813dae05 100644 --- a/src/modules/rpc-port/amd_rpc_port.cc +++ b/src/modules/rpc-port/amd_rpc_port.cc @@ -484,12 +484,32 @@ static int VerifyPrivilegeCheckBypass(amd_request_h req) { return AMD_CYNARA_RET_UNKNOWN; } +static bool CheckScreenConnectorRequest(amd_request_h req) { + bundle* kb = amd_request_get_bundle(req); + if (kb == nullptr) { + _E("Invalid request"); + return false; + } + + tizen_base::Bundle b(kb, false, false); + std::string port_name = b.GetString(AUL_K_RPC_PORT); + if (port_name == "ScreenConnectorInput") + return true; + + return false; +} + static int CynaraCheckerPrepareStub(amd_cynara_caller_info_h info, amd_request_h req, void* data) { int ret = VerifyPrivilegeCheckBypass(req); if (ret != AMD_CYNARA_RET_UNKNOWN) return ret; + if (CheckScreenConnectorRequest(req)) { + return amd_cynara_simple_checker(info, req, + const_cast(PRIVILEGE_WIDGET_VIEWER)); + } + ret = amd_cynara_simple_checker(info, req, const_cast(PRIVILEGE_APPMANAGER_LAUNCH)); if (ret <= AMD_CYNARA_RET_DENIED)