diff --git a/services/init/init_cgroup.c b/services/init/init_cgroup.c index 2f4ed3b9adc6a37bd6817d4f64d501e52a33beba..09b4875f098129da2ce444bc5f77650ad5b89a91 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 db4d1ce556925b12b1adf4e28a25bcf8cee0b147..9c3335d44efe498d5c37120ca229cc0f9c84ba2e 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 fb27356474d3db341a7fcee05236c0e25544eafc..dc0bc815367b7c7ceba8b6df076af77b41ad73f0 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 4145c80d4e5644a2bea8073f71175415d3a04b5c..1de8f8e8a893ce8703913077c01332e13ea3fbf5 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));