From 04466ca2fb9dc6e7be27fc70dc3c49675c319092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E4=BD=B3=E4=BC=9F?= Date: Thu, 24 Jul 2025 11:12:36 +0800 Subject: [PATCH] =?UTF-8?q?Description:init=E5=91=8A=E8=AD=A6=E6=95=B4?= =?UTF-8?q?=E6=94=B9=20IssueNo:https://gitee.com/openharmony/startup=5Fini?= =?UTF-8?q?t/issues/ICOGSZ=20Binary=20Source:No=20Signed-off-by:=20songjia?= =?UTF-8?q?wei9=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interfaces/innerkits/fs_manager/fstab_mount.c | 2 +- interfaces/innerkits/fs_manager/libfs_dm/fs_dm_linear.c | 2 +- interfaces/innerkits/syspara/param_comm.c | 2 +- services/init/init_cgroup.c | 1 + services/init/init_common_service.c | 2 +- services/param/manager/param_manager.c | 2 +- services/sandbox/sandbox.c | 3 ++- ueventd/standard/ueventd_parameter.c | 1 + 8 files changed, 9 insertions(+), 6 deletions(-) diff --git a/interfaces/innerkits/fs_manager/fstab_mount.c b/interfaces/innerkits/fs_manager/fstab_mount.c index 78020c87c..21e22abd4 100755 --- a/interfaces/innerkits/fs_manager/fstab_mount.c +++ b/interfaces/innerkits/fs_manager/fstab_mount.c @@ -455,7 +455,7 @@ static int MountWithCheckpoint(const char *source, const char *target, const cha int gcAllowance = 0; do { char realData[FS_MANAGER_BUFFER_SIZE] = {0}; - size_t bytes = snprintf_s(realData, FS_MANAGER_BUFFER_SIZE, FS_MANAGER_BUFFER_SIZE - 1, "%s,%s:%d%%", + int bytes = snprintf_s(realData, FS_MANAGER_BUFFER_SIZE, FS_MANAGER_BUFFER_SIZE - 1, "%s,%s:%d%%", data, "checkpoint=disable", gcAllowance); BEGET_ERROR_CHECK(bytes > 0, break, "build realData failed"); if (bytes <= 0) { diff --git a/interfaces/innerkits/fs_manager/libfs_dm/fs_dm_linear.c b/interfaces/innerkits/fs_manager/libfs_dm/fs_dm_linear.c index ef32ff236..fe97cdee3 100644 --- a/interfaces/innerkits/fs_manager/libfs_dm/fs_dm_linear.c +++ b/interfaces/innerkits/fs_manager/libfs_dm/fs_dm_linear.c @@ -48,7 +48,7 @@ static int LoadDmLinearDeviceTable(int fd, const char *devName, DmLinearTarget * io->data_start = sizeof(*io); io->target_count = targetNum; uint32_t i = 0; - int len = 0; + uint32_t len = 0; char *paras = NULL; do { FS_DM_RETURN_ERR_IF_NULL(target[i].paras); diff --git a/interfaces/innerkits/syspara/param_comm.c b/interfaces/innerkits/syspara/param_comm.c index 9b4047e72..017708a69 100644 --- a/interfaces/innerkits/syspara/param_comm.c +++ b/interfaces/innerkits/syspara/param_comm.c @@ -77,7 +77,7 @@ INIT_LOCAL_API int GetParameter_(const char *key, const char *def, char *value, if (def == NULL) { return GetSystemError(ret); } - if (strlen(def) > len) { + if (strlen(def) >= len) { return EC_INVALID; } ret = strcpy_s(value, len, def); diff --git a/services/init/init_cgroup.c b/services/init/init_cgroup.c index 2f4ed3b9a..7104ba25e 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_ERROR_CHECK(serviceRmdir->name != NULL, free(serviceRmdir); return, "Failed to malloc for serviceRmdir->name"); int ret = strcpy_s(serviceRmdir->name, strLen + 1, service->name); if (ret != 0) { free(serviceRmdir->name); diff --git a/services/init/init_common_service.c b/services/init/init_common_service.c index 7956dae25..83de46a88 100644 --- a/services/init/init_common_service.c +++ b/services/init/init_common_service.c @@ -379,7 +379,7 @@ static int PublishHoldFds(Service *service) continue; } ret = snprintf_s((char *)fdBuffer + pos, sizeof(fdBuffer) - pos, sizeof(fdBuffer) - 1, "%d ", fd); - INIT_ERROR_CHECK(ret >= 0, return INIT_EFORMAT, + INIT_ERROR_CHECK(ret >= 0, close(fd); return INIT_EFORMAT, "Service error %d %s, failed to format fd for publish", ret, service->name); pos += (size_t)ret; } diff --git a/services/param/manager/param_manager.c b/services/param/manager/param_manager.c index db4d1ce55..31ed67ea0 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 ((((uint32_t)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"); diff --git a/services/sandbox/sandbox.c b/services/sandbox/sandbox.c index fb2735647..ea980270b 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