diff --git a/samgr_client/source/remote_register_rpc.c b/samgr_client/source/remote_register_rpc.c index 5a630dd94d706f11546902240da9e4dae2e8eedd..4eb146280d0f6a4d1afac847b3acfad9e5b1faa4 100644 --- a/samgr_client/source/remote_register_rpc.c +++ b/samgr_client/source/remote_register_rpc.c @@ -37,6 +37,7 @@ #define RETRY_INTERVAL 2 #define MAX_RETRY_TIMES 10 #define ABILITY_UID_START 100 +#define SA_NAME_NUM 2 static void ClientInitializeRegistry(void); RemoteRegister g_remoteRegister; static BOOL g_isAbilityInited = FALSE; @@ -51,8 +52,8 @@ int SAMGR_RegisterServiceApi(const char *service, const char *feature, const Ide SaName saName = {service, feature}; int32 token = SAMGR_AddRouter(g_remoteRegister.endpoint, &saName, identity, iUnknown); #ifdef MINI_SAMGR_LITE_RPC - char saNameStr[2 * MAX_NAME_LEN + 2]; - (void)sprintf_s(saNameStr, 2 * MAX_NAME_LEN + 2, "%s#%s", service, feature?feature:""); + char saNameStr[SA_NAME_NUM * MAX_NAME_LEN + SA_NAME_NUM]; + (void)sprintf_s(saNameStr, SA_NAME_NUM * MAX_NAME_LEN + SA_NAME_NUM, "%s#%s", service, feature?feature:""); HILOG_INFO(HILOG_MODULE_SAMGR, "register saname: %s index: %d\n", saNameStr, token); SaNode *saNode = GetSaNodeBySaName(service, feature); if (saNode != NULL) { diff --git a/samgr_endpoint/source/default_client_mini_adapter.c b/samgr_endpoint/source/default_client_mini_adapter.c index dff156f6e2e4f97896cfaaf12efb0f5c874def88..06265946a9716b2931a80dee1384b211d93fa98c 100644 --- a/samgr_endpoint/source/default_client_mini_adapter.c +++ b/samgr_endpoint/source/default_client_mini_adapter.c @@ -15,6 +15,7 @@ #include "default_client_adapter.h" #include "samgr_server.h" #include "dbinder_service.h" +#include "ipc_process_skeleton.h" #define MAX_COUNT_NUM 2 static pthread_mutex_t g_handleMutex = PTHREAD_MUTEX_INITIALIZER; static int32_t g_handle = 0; @@ -64,7 +65,6 @@ SvcIdentity QueryRemoteIdentityInner(const char *deviceId, const char *service, return target; } target.handle = GetNextHandle(); - extern void WaitForProxyInit(SvcIdentity *svc); WaitForProxyInit(&target); HILOG_ERROR(HILOG_MODULE_SAMGR, "MakeRemoteBinder sid handle=%d", target.handle); return target; diff --git a/samgr_endpoint/source/default_client_rpc.c b/samgr_endpoint/source/default_client_rpc.c index d18730b7250750eabc65ed352bc3e0accf90f621..d7cc4b7b4f2f49ecc9ab454afaba0545390adf69 100644 --- a/samgr_endpoint/source/default_client_rpc.c +++ b/samgr_endpoint/source/default_client_rpc.c @@ -179,7 +179,7 @@ static int ProxyInvoke(IClientProxy *proxy, int funcId, IpcIo *request, IOwner o IpcIoInit(&requestWrapper, data, MAX_IO_SIZE, MAX_OBJ_NUM); } ProxyInvokeArgInner(&requestWrapper, header); - if(request != NULL) { + if (request != NULL) { if (!IpcIoAppend(&requestWrapper, request)) { HILOG_ERROR(HILOG_MODULE_SAMGR, "ipc io append fail\n"); free(data); diff --git a/samgr_endpoint/source/samgr_small_ipc_adapter.c b/samgr_endpoint/source/samgr_small_ipc_adapter.c index a58199cb50d39526596aea4d32f030d49fb7c54c..d640f78238e8c506d56a7c054d907708fbef44f1 100644 --- a/samgr_endpoint/source/samgr_small_ipc_adapter.c +++ b/samgr_endpoint/source/samgr_small_ipc_adapter.c @@ -340,23 +340,24 @@ static void GetRemotePolicy(IpcIo *reply, PolicyTrans **policy, uint32 *policyNu return; } for (i = 0; i < *policyNum; i++) { - if (ReadInt32(reply, &(*policy)[i].type)) { - switch ((*policy)[i].type) { - case RANGE: - ReadInt32(reply, &((*policy)[i].uidMin)); - ReadInt32(reply, &((*policy)[i].uidMax)); - break; - case FIXED: - for (j = 0; j < UID_SIZE; j++) { - ReadInt32(reply, &((*policy)[i].fixedUid[j])); - } - break; - case BUNDLENAME: - ReadInt32(reply, &((*policy)[i].fixedUid[0])); - break; - default: - break; - } + if (!ReadInt32(reply, &(*policy)[i].type)) { + continue; } + switch ((*policy)[i].type) { + case RANGE: + ReadInt32(reply, &((*policy)[i].uidMin)); + ReadInt32(reply, &((*policy)[i].uidMax)); + break; + case FIXED: + for (j = 0; j < UID_SIZE; j++) { + ReadInt32(reply, &((*policy)[i].fixedUid[j])); + } + break; + case BUNDLENAME: + ReadInt32(reply, &((*policy)[i].fixedUid[0])); + break; + default: + break; + } } } \ No newline at end of file diff --git a/samgr_server/source/samgr_server_rpc.c b/samgr_server/source/samgr_server_rpc.c index a4b417f50e6758192ba014b6302cf678fd5f7e00..1c024cc91393791fe6a0a5bf25410ada333f33d5 100644 --- a/samgr_server/source/samgr_server_rpc.c +++ b/samgr_server/source/samgr_server_rpc.c @@ -47,6 +47,7 @@ typedef int(*ProcFunc)(SamgrServer *server, int32 option, void *origin, IpcIo *r #define MAX_SA_SIZE 0x100 #define RETRY_TIMES 3 #define RETRY_INTERVAL 1 +#define MINI_SA_RPC_ID 16 #define UID_HAP 10000 #define MAX_SYSCAP_NUM_PER_REPLY 118 @@ -168,7 +169,7 @@ static void InitializeGSaList(void) } saNode->saName.service = "mini_sa_rpc"; saNode->saName.feature = NULL; - saNode->saId = 16; + saNode->saId = MINI_SA_RPC_ID; UtilsListInit(&g_saList); UtilsListAdd(&g_saList, &saNode->list); }