From 8d0725c0d871fec74a0e0dd3c8d5ffc00b326ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A8=8A=E6=99=AF=E4=B9=90?= Date: Wed, 23 Jul 2025 10:47:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9init=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 樊景乐 --- services/init/init_cgroup.c | 1 + services/param/manager/param_manager.c | 8 ++++---- services/sandbox/sandbox.c | 3 ++- ueventd/standard/ueventd_parameter.c | 1 + 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/services/init/init_cgroup.c b/services/init/init_cgroup.c index 2f4ed3b9a..09b4875f0 100644 --- a/services/init/init_cgroup.c +++ b/services/init/init_cgroup.c @@ -95,6 +95,7 @@ static void RmdirTimer(Service *service, uint64_t timeout) serviceRmdir->pid = service->pid; int strLen = strlen(service->name); serviceRmdir->name = (char *)malloc(sizeof(char)*(strLen + 1)); + INIT_INFO_CHECK(serviceRmdir->name != NULL, return, "serviceRmdir name is null"); int ret = strcpy_s(serviceRmdir->name, strLen + 1, service->name); if (ret != 0) { free(serviceRmdir->name); diff --git a/services/param/manager/param_manager.c b/services/param/manager/param_manager.c index db4d1ce55..9c3335d44 100644 --- a/services/param/manager/param_manager.c +++ b/services/param/manager/param_manager.c @@ -456,7 +456,7 @@ static int UpdateParam(const WorkSpace *workSpace, uint32_t *dataIndex, const ch uint32_t valueLen = strlen(value); uint32_t commitId = ATOMIC_LOAD_EXPLICIT(&entry->commitId, MEMORY_ORDER_RELAXED); ATOMIC_STORE_EXPLICIT(&entry->commitId, commitId | PARAM_FLAGS_MODIFY, MEMORY_ORDER_RELAXED); - if (((mode & LOAD_PARAM_UPDATE_CONST) == LOAD_PARAM_UPDATE_CONST) && + if ((((unsigned int)mode & LOAD_PARAM_UPDATE_CONST) == LOAD_PARAM_UPDATE_CONST) && (entry->valueLength < PARAM_CONST_VALUE_LEN_MAX && valueLen < PARAM_CONST_VALUE_LEN_MAX)) { int ret = PARAM_MEMCPY(entry->data + entry->keyLength + 1, PARAM_CONST_VALUE_LEN_MAX, value, valueLen + 1); PARAM_CHECK(ret == 0, return PARAM_CODE_INVALID_VALUE, "Failed to copy value"); @@ -507,20 +507,20 @@ INIT_LOCAL_API int WriteParam(const char *name, const char *value, uint32_t *dat if (dataIndex != NULL) { *dataIndex = node->dataIndex; } - if ((mode & LOAD_PARAM_ONLY_ADD) == LOAD_PARAM_ONLY_ADD) { + if (((unsigned int)mode & LOAD_PARAM_ONLY_ADD) == LOAD_PARAM_ONLY_ADD) { return PARAM_CODE_READ_ONLY; } ParamNode *entry = (ParamNode *)GetTrieNode(workSpace, node->dataIndex); PARAM_CHECK(entry != NULL, return PARAM_CODE_REACHED_MAX, "Failed to update param value %s %u", name, node->dataIndex); - ret = CheckParamValue((mode & LOAD_PARAM_UPDATE_CONST) == LOAD_PARAM_UPDATE_CONST ? NULL : node, + ret = CheckParamValue(((unsigned int)mode & LOAD_PARAM_UPDATE_CONST) == LOAD_PARAM_UPDATE_CONST ? NULL : node, name, value, entry->type); PARAM_CHECK(ret == 0, return ret, "Invalid param value param: %s=%s", name, value); PARAMSPACE_AREA_RW_LOCK(workSpace); ret = UpdateParam(workSpace, &node->dataIndex, name, value, mode); PARAMSPACE_AREA_RW_UNLOCK(workSpace); } else { - if ((mode & LOAD_PARAM_UPDATE_CONST) == LOAD_PARAM_UPDATE_CONST) { + if (((unsigned int)mode & LOAD_PARAM_UPDATE_CONST) == LOAD_PARAM_UPDATE_CONST) { return PARAM_CODE_INVALID_NAME; } uint8_t type = GetParamValueType(name); diff --git a/services/sandbox/sandbox.c b/services/sandbox/sandbox.c index fb2735647..dc0bc8153 100755 --- a/services/sandbox/sandbox.c +++ b/services/sandbox/sandbox.c @@ -278,7 +278,8 @@ static int AddSymbolLinksToSandbox(sandbox_t *sandbox, cJSON *item, const char * tmpLink->target = strdup(target); BEGET_ERROR_CHECK(tmpLink->target != NULL, free(tmpLink); return -1, "Failed to dup target"); tmpLink->linkName = strdup(name); - BEGET_ERROR_CHECK(tmpLink->linkName != NULL, free(tmpLink); return -1, "Failed to dup linkName"); + BEGET_ERROR_CHECK(tmpLink->linkName != NULL, free(tmpLink->target); + free(tmpLink); return -1, "Failed to dup linkName"); OH_ListInit(&tmpLink->node); RemoveOldSandboxLinkListNode(&sandbox->linksHead, tmpLink->linkName); OH_ListAddTail(&sandbox->linksHead, &tmpLink->node); diff --git a/ueventd/standard/ueventd_parameter.c b/ueventd/standard/ueventd_parameter.c index 4145c80d4..1de8f8e8a 100644 --- a/ueventd/standard/ueventd_parameter.c +++ b/ueventd/standard/ueventd_parameter.c @@ -78,6 +78,7 @@ static void *ThreadRun(void *data) pthread_cond_timedwait(&(parameterCtrl->hasData), &(parameterCtrl->lock), &abstime); } if (parameterCtrl->shutdown) { + pthread_mutex_unlock(&(parameterCtrl->lock)); break; } pthread_mutex_unlock(&(parameterCtrl->lock)); -- Gitee