From a764bc15e088756351489691d9274a2e1c98ad19 Mon Sep 17 00:00:00 2001 From: chen Date: Thu, 30 Jun 2022 19:41:56 +0800 Subject: [PATCH 1/5] modify pointer Signed-off-by: chen Change-Id: I28a0ef104a8b0f70763841f2ff43276f76d082b9 --- samgr_client/source/remote_register.c | 2 +- samgr_client/source/remote_register_rpc.c | 2 +- samgr_endpoint/source/default_client.c | 44 ++++++++++++++++++++-- samgr_endpoint/source/default_client_rpc.c | 22 ++++++++++- 4 files changed, 62 insertions(+), 8 deletions(-) diff --git a/samgr_client/source/remote_register.c b/samgr_client/source/remote_register.c index 11531e5..c7902e2 100755 --- a/samgr_client/source/remote_register.c +++ b/samgr_client/source/remote_register.c @@ -127,7 +127,7 @@ static void InitializeRegistry(void) if (g_remoteRegister.endpoint != NULL) { return; } - HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Client Registry!"); + HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Client Registry chenkang !"); MUTEX_GlobalLock(); if (g_remoteRegister.endpoint == NULL) { g_remoteRegister.mtx = MUTEX_InitValue(); diff --git a/samgr_client/source/remote_register_rpc.c b/samgr_client/source/remote_register_rpc.c index 5a630dd..65bd652 100644 --- a/samgr_client/source/remote_register_rpc.c +++ b/samgr_client/source/remote_register_rpc.c @@ -145,7 +145,7 @@ static void ClientInitializeRegistry(void) if (g_remoteRegister.endpoint != NULL) { return; } - HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Client Registry!"); + HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Client Registry chenkang rpc!"); MUTEX_GlobalLock(); if (g_remoteRegister.endpoint == NULL) { g_remoteRegister.mtx = MUTEX_InitValue(); diff --git a/samgr_endpoint/source/default_client.c b/samgr_endpoint/source/default_client.c index b624227..8c4ccd0 100755 --- a/samgr_endpoint/source/default_client.c +++ b/samgr_endpoint/source/default_client.c @@ -27,6 +27,7 @@ #undef LOG_DOMAIN #define LOG_TAG "Samgr" #define LOG_DOMAIN 0xD001800 +#define SA_MAX_LEN 17 typedef struct IClientHeader IClientHeader; typedef struct IDefaultClient IDefaultClient; typedef struct IClientEntry IClientEntry; @@ -72,10 +73,27 @@ IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, con client->entry = DEFAULT_ENTRY; } + char *serviceName = (char *)malloc(SA_MAXLEN); + if (serviceName == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "malloc null"); + return NULL; + } + char *featureName = (char *)malloc(SA_MAX_LEN); + if (featureName == NULL) { + free(serviceName); + HILOG_INFO(HILOG_MODULE_SAMGR, "featurename malloc null"); + return NULL; + } + size_t serviceLen = strlen(service); + size_t featureLen = strlen(feature); + (void)memset_s(serviceName, SA_MAX_LEN, 0, serviceLen); + (void)memset_s(featureName, SA_MAX_LEN, 0, featureLen); + (void)strncpy_s(serviceName, SA_MAX_LEN, service, serviceLen); + (void)strncpy_s(featureName, SA_MAX_LEN, feature, featureLen); IClientHeader *header = &client->header; header->target = identity; - header->key.service = service; - header->key.feature = feature; + header->key.service = serviceName; + header->key.feature = featureName; header->context = context; (void)RegisterDeathCallback(context, identity, OnServiceExit, client, &header->deadId); @@ -111,29 +129,47 @@ SaName *SAMGR_GetSAName(const IUnknown *proxy) int SAMGR_CompareSAName(const SaName *key1, const SaName *key2) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1 : %p, key2 : %p, key1->service : %p, key2->service : %p, key1->featrue : %p, key2->feature : %p", + key1, key2, key1->service, key2->service, key1->feature, key2->feature); if (key1 == key2) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1 == key2, return"); return 0; } if (key1->service != key2->service) { int ret = strcmp(key1->service, key2->service); if (ret != 0) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1->service != key2->service, return"); return ret; } } if (key1->feature == key2->feature) { - return 0; + if (key1->feature == NULL && key2->feature == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1->feature == NULL && key2->feature == NULL, return"); + return 0; + } + if (key1->feature != NULL && key2->feature != NULL) { + int ret = strcmp(key1->service, key2->service); + if (ret == 0) { + HILOG_INFO(HILOG_MODULE_SAMGR, " strcmp(key1->service, key2->service) == 0"); + return strcmp(key1->feature, key2->feature); + } + HILOG_INFO(HILOG_MODULE_SAMGR, " strcmp(key1->service, key2->service) != 0"); + return ret; + } } if (key1->feature == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1->feature == NULL"); return -1; } if (key2->feature == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key2->feature == NULL"); return 1; } - + HILOG_INFO(HILOG_MODULE_SAMGR, "strcmp(key1->feature, key2->feature) finally, return"); return strcmp(key1->feature, key2->feature); } diff --git a/samgr_endpoint/source/default_client_rpc.c b/samgr_endpoint/source/default_client_rpc.c index dc6f955..b747b52 100644 --- a/samgr_endpoint/source/default_client_rpc.c +++ b/samgr_endpoint/source/default_client_rpc.c @@ -104,29 +104,47 @@ SaName *SAMGR_GetSAName(const IUnknown *proxy) int SAMGR_CompareSAName(const SaName *key1, const SaName *key2) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1 : %p, key2 : %p, key1->service : %p, key2->service : %p, key1->featrue : %p, key2->feature : %p", + key1, key2, key1->service, key2->service, key1->feature, key2->feature); if (key1 == key2) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1 == key2, return"); return 0; } if (key1->service != key2->service) { int ret = strcmp(key1->service, key2->service); if (ret != 0) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1->service != key2->service, return"); return ret; } } if (key1->feature == key2->feature) { - return 0; + if (key1->feature == NULL && key2->feature == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1->feature == NULL && key2->feature == NULL, return"); + return 0; + } + if (key1->feature != NULL && key2->feature != NULL) { + int ret = strcmp(key1->service, key2->service); + if (ret == 0) { + HILOG_INFO(HILOG_MODULE_SAMGR, " strcmp(key1->service, key2->service) == 0"); + return strcmp(key1->feature, key2->feature); + } + HILOG_INFO(HILOG_MODULE_SAMGR, " strcmp(key1->service, key2->service) != 0"); + return ret; + } } if (key1->feature == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key1->feature == NULL"); return -1; } if (key2->feature == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "key2->feature == NULL"); return 1; } - + HILOG_INFO(HILOG_MODULE_SAMGR, "strcmp(key1->feature, key2->feature) finally, return"); return strcmp(key1->feature, key2->feature); } -- Gitee From 1bc46ee78bf2b51574425421c2911e7c16a41366 Mon Sep 17 00:00:00 2001 From: chen Date: Mon, 11 Jul 2022 07:15:44 +0000 Subject: [PATCH 2/5] update samgr_endpoint/source/default_client.c. --- samgr_endpoint/source/default_client.c | 1 + 1 file changed, 1 insertion(+) diff --git a/samgr_endpoint/source/default_client.c b/samgr_endpoint/source/default_client.c index 8c4ccd0..a10bdca 100755 --- a/samgr_endpoint/source/default_client.c +++ b/samgr_endpoint/source/default_client.c @@ -90,6 +90,7 @@ IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, con (void)memset_s(featureName, SA_MAX_LEN, 0, featureLen); (void)strncpy_s(serviceName, SA_MAX_LEN, service, serviceLen); (void)strncpy_s(featureName, SA_MAX_LEN, feature, featureLen); + HILOG_INFO(HILOG_MODULE_SAMGR, "serviceName : %s, %p; featureName : %s, %p", serviceName, serviceName, featureName, featureName); IClientHeader *header = &client->header; header->target = identity; header->key.service = serviceName; -- Gitee From 9e5bfacd82e83a18a15b68d1b5a50aa9abd338b6 Mon Sep 17 00:00:00 2001 From: chen Date: Wed, 13 Jul 2022 10:41:19 +0000 Subject: [PATCH 3/5] update samgr_endpoint/source/default_client.c. --- samgr_endpoint/source/default_client.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/samgr_endpoint/source/default_client.c b/samgr_endpoint/source/default_client.c index a10bdca..71acf71 100755 --- a/samgr_endpoint/source/default_client.c +++ b/samgr_endpoint/source/default_client.c @@ -59,6 +59,7 @@ static MutexId g_mutex = NULL; IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, const char *feature) { + HILOG_INFO(HILOG_MODULE_SAMGR, "SAMGR_CreateIProxy enter"); SvcIdentity identity = QueryIdentity(context, service, feature); if (identity.handle == INVALID_INDEX) { return NULL; @@ -73,7 +74,7 @@ IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, con client->entry = DEFAULT_ENTRY; } - char *serviceName = (char *)malloc(SA_MAXLEN); + char *serviceName = (char *)malloc(SA_MAX_LEN); if (serviceName == NULL) { HILOG_INFO(HILOG_MODULE_SAMGR, "malloc null"); return NULL; @@ -86,8 +87,8 @@ IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, con } size_t serviceLen = strlen(service); size_t featureLen = strlen(feature); - (void)memset_s(serviceName, SA_MAX_LEN, 0, serviceLen); - (void)memset_s(featureName, SA_MAX_LEN, 0, featureLen); + (void)memset_s(serviceName, SA_MAX_LEN, 0, SA_MAX_LEN); + (void)memset_s(featureName, SA_MAX_LEN, 0, SA_MAX_LEN); (void)strncpy_s(serviceName, SA_MAX_LEN, service, serviceLen); (void)strncpy_s(featureName, SA_MAX_LEN, feature, featureLen); HILOG_INFO(HILOG_MODULE_SAMGR, "serviceName : %s, %p; featureName : %s, %p", serviceName, serviceName, featureName, featureName); -- Gitee From cf671d372c7620bd566cec864fd26c39e0d8bb05 Mon Sep 17 00:00:00 2001 From: chen Date: Wed, 13 Jul 2022 10:50:49 +0000 Subject: [PATCH 4/5] update samgr_endpoint/source/default_client_rpc.c. --- samgr_endpoint/source/default_client_rpc.c | 25 ++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/samgr_endpoint/source/default_client_rpc.c b/samgr_endpoint/source/default_client_rpc.c index b747b52..31da545 100644 --- a/samgr_endpoint/source/default_client_rpc.c +++ b/samgr_endpoint/source/default_client_rpc.c @@ -14,6 +14,7 @@ */ #include "default_client_adapter.h" +#define SA_MAX_LEN 17 static int AddRef(IUnknown *iUnknown); static int Release(IUnknown *proxy); static int ProxyInvoke(IClientProxy *proxy, int funcId, IpcIo *request, IOwner owner, INotify notify); @@ -39,10 +40,29 @@ IUnknown *SAMGR_CreateIProxy(const char *service, const char *feature) client->entry = DEFAULT_ENTRY; } + char *serviceName = (char *)malloc(SA_MAX_LEN); + if (serviceName == NULL) { + HILOG_INFO(HILOG_MODULE_SAMGR, "malloc null"); + return NULL; + } + char *featureName = (char *)malloc(SA_MAX_LEN); + if (featureName == NULL) { + free(serviceName); + HILOG_INFO(HILOG_MODULE_SAMGR, "featurename malloc null"); + return NULL; + } + size_t serviceLen = strlen(service); + size_t featureLen = strlen(feature); + (void)memset_s(serviceName, SA_MAX_LEN, 0, SA_MAX_LEN); + (void)memset_s(featureName, SA_MAX_LEN, 0, SA_MAX_LEN); + (void)strncpy_s(serviceName, SA_MAX_LEN, service, serviceLen); + (void)strncpy_s(featureName, SA_MAX_LEN, feature, featureLen); + HILOG_INFO(HILOG_MODULE_SAMGR, "serviceName : %s, %p; featureName : %s, %p", serviceName, serviceName, featureName, featureName); + IClientHeader *header = &client->header; header->target = identity; - header->key.service = service; - header->key.feature = feature; + header->key.service = serviceName; + header->key.feature = featureName; header->saId = 0; (void)AddDeathRecipient(identity, OnServiceExit, client, &header->deadId); @@ -55,6 +75,7 @@ IUnknown *SAMGR_CreateIProxy(const char *service, const char *feature) IUnknown *SAMGR_CreateIRemoteProxy(const char* deviceId, const char *service, const char *feature) { + HILOG_INFO(HILOG_MODULE_SAMGR, "SAMGR_CreateIProxy enter"); SvcIdentity identity = QueryRemoteIdentity(deviceId, service, feature); IDefaultClient *client = SAMGR_CreateIClient(service, feature, sizeof(IClientHeader)); -- Gitee From 3d189f7aada0654d92c3be4f20725182d8bd540c Mon Sep 17 00:00:00 2001 From: chen Date: Wed, 13 Jul 2022 13:13:10 +0000 Subject: [PATCH 5/5] update samgr_endpoint/source/default_client_rpc.c. --- samgr_endpoint/source/default_client_rpc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/samgr_endpoint/source/default_client_rpc.c b/samgr_endpoint/source/default_client_rpc.c index 31da545..4c90841 100644 --- a/samgr_endpoint/source/default_client_rpc.c +++ b/samgr_endpoint/source/default_client_rpc.c @@ -52,11 +52,13 @@ IUnknown *SAMGR_CreateIProxy(const char *service, const char *feature) return NULL; } size_t serviceLen = strlen(service); - size_t featureLen = strlen(feature); (void)memset_s(serviceName, SA_MAX_LEN, 0, SA_MAX_LEN); (void)memset_s(featureName, SA_MAX_LEN, 0, SA_MAX_LEN); (void)strncpy_s(serviceName, SA_MAX_LEN, service, serviceLen); - (void)strncpy_s(featureName, SA_MAX_LEN, feature, featureLen); + if (feature != NULL) { + size_t featureLen = strlen(feature); + (void)strncpy_s(featureName, SA_MAX_LEN, feature, featureLen); + } HILOG_INFO(HILOG_MODULE_SAMGR, "serviceName : %s, %p; featureName : %s, %p", serviceName, serviceName, featureName, featureName); IClientHeader *header = &client->header; -- Gitee