From 6d2e2c374077e6a83526b89bdd9b5ebc4a78d730 Mon Sep 17 00:00:00 2001 From: "Neil.wrz" Date: Sun, 18 Sep 2022 19:04:26 -0700 Subject: [PATCH] refactor handle some warnings Signed-off-by: Neil.wrz --- ...at-Add-json-spec-for-rest-resize-api.patch | 2 +- ...AVE_ISULAD-definition-for-lxc-header.patch | 2 +- ...-quota-out-of-range-when-update-to-1.patch | 2 +- 0004-remove-unused-daemon-config-args.patch | 2 +- 0005-refactor-handle-warnings.patch | 292 ++++++++++++++++++ lcr.spec | 9 +- 6 files changed, 304 insertions(+), 5 deletions(-) create mode 100644 0005-refactor-handle-warnings.patch diff --git a/0001-feat-Add-json-spec-for-rest-resize-api.patch b/0001-feat-Add-json-spec-for-rest-resize-api.patch index 5ae3dc0..d59b1d5 100644 --- a/0001-feat-Add-json-spec-for-rest-resize-api.patch +++ b/0001-feat-Add-json-spec-for-rest-resize-api.patch @@ -1,7 +1,7 @@ From 72985299db95706fd1988de4f5fa88a8cfd55367 Mon Sep 17 00:00:00 2001 From: "Neil.wrz" Date: Tue, 5 Jul 2022 18:23:42 -0700 -Subject: [PATCH 1/3] feat Add json spec for rest resize api +Subject: [PATCH 1/5] feat Add json spec for rest resize api Signed-off-by: Neil.wrz --- diff --git a/0002-add-HAVE_ISULAD-definition-for-lxc-header.patch b/0002-add-HAVE_ISULAD-definition-for-lxc-header.patch index 1cdaaf1..e5fe84b 100644 --- a/0002-add-HAVE_ISULAD-definition-for-lxc-header.patch +++ b/0002-add-HAVE_ISULAD-definition-for-lxc-header.patch @@ -1,7 +1,7 @@ From 4d12753a659ba3b9a3a9bd24e2f842e5bd0fa7a2 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu Date: Fri, 22 Jul 2022 10:01:52 +0800 -Subject: [PATCH 2/3] add HAVE_ISULAD definition for lxc header +Subject: [PATCH 2/5] add HAVE_ISULAD definition for lxc header Signed-off-by: zhangxiaoyu --- diff --git a/0003-fix-cpu-quota-out-of-range-when-update-to-1.patch b/0003-fix-cpu-quota-out-of-range-when-update-to-1.patch index 3444182..baa1b68 100644 --- a/0003-fix-cpu-quota-out-of-range-when-update-to-1.patch +++ b/0003-fix-cpu-quota-out-of-range-when-update-to-1.patch @@ -1,7 +1,7 @@ From cb0e052e96dfce0992132020eb5fba61c323cfc2 Mon Sep 17 00:00:00 2001 From: "Neil.wrz" Date: Tue, 26 Jul 2022 02:17:47 -0700 -Subject: [PATCH 3/3] fix cpu-quota out of range when update to -1 +Subject: [PATCH 3/5] fix cpu-quota out of range when update to -1 Signed-off-by: Neil.wrz --- diff --git a/0004-remove-unused-daemon-config-args.patch b/0004-remove-unused-daemon-config-args.patch index 80e4a5c..37db735 100644 --- a/0004-remove-unused-daemon-config-args.patch +++ b/0004-remove-unused-daemon-config-args.patch @@ -1,7 +1,7 @@ From 0faebe9d8ff1ddcd3982b7bbd9f8d2078c3e5a29 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu Date: Tue, 6 Sep 2022 18:48:28 +0800 -Subject: [PATCH 4/4] remove unused daemon config args +Subject: [PATCH 4/5] remove unused daemon config args Signed-off-by: zhangxiaoyu --- diff --git a/0005-refactor-handle-warnings.patch b/0005-refactor-handle-warnings.patch new file mode 100644 index 0000000..b82226b --- /dev/null +++ b/0005-refactor-handle-warnings.patch @@ -0,0 +1,292 @@ +From 42ed1c3fe60330c1ce98df1f6668bb8b4b2ded76 Mon Sep 17 00:00:00 2001 +From: "Neil.wrz" +Date: Thu, 8 Sep 2022 01:00:49 -0700 +Subject: [PATCH 5/5] refactor handle warnings + +Signed-off-by: Neil.wrz +--- + src/conf.c | 11 ++++++++--- + src/lcrcontainer.c | 8 +++++--- + src/lcrcontainer_execute.c | 30 +++++++++++++++++++++--------- + src/lcrcontainer_extend.c | 7 ++++--- + src/utils.c | 6 +++--- + src/utils.h | 2 +- + third_party/libocispec/read_file.c | 1 - + third_party/log.c | 5 ++--- + 8 files changed, 44 insertions(+), 26 deletions(-) + +diff --git a/src/conf.c b/src/conf.c +index f2569b3..4f644d9 100644 +--- a/src/conf.c ++++ b/src/conf.c +@@ -1391,7 +1391,8 @@ static int trans_resources_mem_swap_v1(const defs_resources *res, struct lcr_lis + } + } + +- if (res->memory->swappiness != -1) { ++ // int64: swappiness should be int64 ++ if (res->memory->swappiness != (uint64_t)-1) { + /* set swappiness parameter of vmscan */ + nret = trans_conf_uint64(conf, "lxc.cgroup.memory.swappiness", res->memory->swappiness); + if (nret < 0) { +@@ -2085,7 +2086,7 @@ static int trans_resources_cpu_weight_v2(const defs_resources *res, struct lcr_l + return -1; + } + +- if (trans_conf_int64(conf, "lxc.cgroup2.cpu.weight", lcr_util_trans_cpushare_to_cpuweight(res->cpu->shares)) != 0) { ++ if (trans_conf_int64(conf, "lxc.cgroup2.cpu.weight", lcr_util_trans_cpushare_to_cpuweight((int64_t)res->cpu->shares)) != 0) { + return -1; + } + +@@ -2227,13 +2228,17 @@ static int trans_io_bfq_weight_v2(const defs_resources_block_io *block_io, struc + size_t len = block_io->weight_device_len; + + if (block_io->weight != INVALID_INT) { ++ if (block_io->weight < 10 || block_io->weight > 1000) { ++ ERROR("invalid io weight %d out of range [10-1000]", block_io->weight); ++ return -1; ++ } + weight = lcr_util_trans_blkio_weight_to_io_bfq_weight(block_io->weight); + if (weight < CGROUP2_BFQ_WEIGHT_MIN || weight > CGROUP2_BFQ_WEIGHT_MAX) { + ERROR("invalid io weight cased by invalid blockio weight %d", block_io->weight); + return -1; + } + +- if (trans_conf_int(conf, "lxc.cgroup2.io.bfq.weight", weight) != 0) { ++ if (trans_conf_uint64(conf, "lxc.cgroup2.io.bfq.weight", weight) != 0) { + return -1; + } + } +diff --git a/src/lcrcontainer.c b/src/lcrcontainer.c +index 5746b09..14cc6c4 100644 +--- a/src/lcrcontainer.c ++++ b/src/lcrcontainer.c +@@ -498,11 +498,11 @@ bool lcr_kill(const char *name, const char *lcrpath, uint32_t signal) + sret = kill(pid, (int)signal); + if (sret < 0) { + if (errno == ESRCH) { +- WARN("Can not kill process (pid=%d) with signal %d for container: no such process", pid, signal); ++ WARN("Can not kill process (pid=%ld) with signal %u for container: no such process", (long)pid, (unsigned int)signal); + ret = true; + goto out_put; + } +- ERROR("Can not kill process (pid=%d) with signal %d for container", pid, signal); ++ ERROR("Can not kill process (pid=%ld) with signal %u for container", (long)pid, (unsigned int)signal); + goto out_put; + } + +@@ -999,6 +999,7 @@ static char *lcr_get_config_item(struct lxc_container *c, const char *key, bool + char *cret = NULL; + size_t len = 0; + int nret = 0; ++ int config_item = 0; + + if (key == NULL) { + ERROR("Key cannot be NULL"); +@@ -1032,7 +1033,8 @@ static char *lcr_get_config_item(struct lxc_container *c, const char *key, bool + goto out; + } + +- if ((size_t)c->get_config_item(c, key, cret, (int)len + 1) != len) { ++ config_item = c->get_config_item(c, key, cret, (int)len + 1); ++ if (config_item < 0 || (size_t)config_item != len) { + free(cret); + cret = NULL; + } +diff --git a/src/lcrcontainer_execute.c b/src/lcrcontainer_execute.c +index 042ad2f..118f26c 100644 +--- a/src/lcrcontainer_execute.c ++++ b/src/lcrcontainer_execute.c +@@ -199,7 +199,7 @@ static int update_resources_cpu_weight_v2(struct lxc_container *c, const struct + } + + int num = snprintf(numstr, sizeof(numstr), "%llu", +- (unsigned long long)lcr_util_trans_cpushare_to_cpuweight(cr->cpu_shares)); ++ (unsigned long long)lcr_util_trans_cpushare_to_cpuweight((int64_t)cr->cpu_shares)); + if (num < 0 || (size_t)num >= sizeof(numstr)) { + return -1; + } +@@ -239,7 +239,7 @@ static int update_resources_cpu_max_v2(struct lxc_container *c, const struct lcr + { + int num = 0; + uint64_t period = cr->cpu_period; +- uint64_t quota = cr->cpu_quota; ++ int64_t quota = cr->cpu_quota; + char numstr[128] = {0}; /* max buffer */ + + if (quota == 0 && period == 0) { +@@ -252,8 +252,8 @@ static int update_resources_cpu_max_v2(struct lxc_container *c, const struct lcr + + // format: + // $MAX $PERIOD +- if ((int64_t) quota > 0) { +- num = snprintf(numstr, sizeof(numstr), "%llu %llu", (unsigned long long)quota, (unsigned long long)period); ++ if (quota > 0) { ++ num = snprintf(numstr, sizeof(numstr), "%lld %llu", (long long int)quota, (unsigned long long)period); + } else { + num = snprintf(numstr, sizeof(numstr), "max %llu", (unsigned long long)period); + } +@@ -486,7 +486,7 @@ static int update_resources_memory_swap_v2(struct lxc_container *c, const struct + return 0; + } + +- if (lcr_util_get_real_swap(cr->memory_limit, cr->memory_swap, &swap) != 0) { ++ if (lcr_util_get_real_swap((int64_t)cr->memory_limit, (int64_t)cr->memory_swap, &swap) != 0) { + return -1; + } + +@@ -549,13 +549,15 @@ static bool update_resources_mem_v1(struct lxc_container *c, struct lcr_cgroup_r + bool ret = false; + + // If the memory update is set to -1 we should also set swap to -1, it means unlimited memory. +- if (cr->memory_limit == -1) { +- cr->memory_swap = -1; ++ // int64 : memory_limit should be int64 ++ if (cr->memory_limit == (uint64_t)-1) { ++ cr->memory_swap = (uint64_t)-1; + } + ++ // int64 : memory_limit should be int64 + if (cr->memory_limit != 0 && cr->memory_swap != 0) { + uint64_t cur_mem_limit = stat_get_ull(c, "memory.limit_in_bytes"); +- if (cr->memory_swap == -1 || cur_mem_limit < cr->memory_swap) { ++ if (cr->memory_swap == (uint64_t)-1 || cur_mem_limit < cr->memory_swap) { + if (update_resources_memory_swap(c, cr) != 0) { + goto err_out; + } +@@ -637,7 +639,12 @@ static int update_resources_io_weight_v2(struct lxc_container *c, const struct l + return 0; + } + +- weight = lcr_util_trans_blkio_weight_to_io_weight(cr->blkio_weight); ++ if (cr->blkio_weight < 10 || cr->blkio_weight > 1000) { ++ ERROR("invalid io weight %llu out of range [10-1000]", (unsigned long long)cr->blkio_weight); ++ return -1; ++ } ++ ++ weight = lcr_util_trans_blkio_weight_to_io_weight((int)cr->blkio_weight); + if (weight < CGROUP2_WEIGHT_MIN || weight > CGROUP2_WEIGHT_MAX) { + ERROR("invalid io weight cased by invalid blockio weight %llu", (unsigned long long) cr->blkio_weight); + return -1; +@@ -665,6 +672,11 @@ static int update_resources_io_bfq_weight_v2(struct lxc_container *c, const stru + return 0; + } + ++ if (cr->blkio_weight < 10 || cr->blkio_weight > 1000) { ++ ERROR("invalid io weight %llu out of range [10-1000]", (unsigned long long)cr->blkio_weight); ++ return -1; ++ } ++ + weight = lcr_util_trans_blkio_weight_to_io_bfq_weight(cr->blkio_weight); + if (weight < CGROUP2_BFQ_WEIGHT_MIN || weight > CGROUP2_BFQ_WEIGHT_MAX) { + ERROR("invalid io weight cased by invalid blockio weight %llu", (unsigned long long) cr->blkio_weight); +diff --git a/src/lcrcontainer_extend.c b/src/lcrcontainer_extend.c +index 717d13b..e03c212 100644 +--- a/src/lcrcontainer_extend.c ++++ b/src/lcrcontainer_extend.c +@@ -818,6 +818,7 @@ static int lcr_spec_write_config(int fd, const struct lcr_list *lcr_conf) + lcr_list_for_each(it, lcr_conf) { + lcr_config_item_t *item = it->elem; + int nret; ++ size_t encode_len; + if (item != NULL) { + if (strlen(item->value) > ((SIZE_MAX - strlen(item->name)) - 4)) { + goto cleanup; +@@ -842,10 +843,10 @@ static int lcr_spec_write_config(int fd, const struct lcr_list *lcr_conf) + goto cleanup; + } + +- nret = strlen(line_encode); ++ encode_len = strlen(line_encode); + +- line_encode[nret] = '\n'; +- if (write(fd, line_encode, nret + 1) == -1) { ++ line_encode[encode_len] = '\n'; ++ if (write(fd, line_encode, encode_len + 1) == -1) { + SYSERROR("Write failed"); + goto cleanup; + } +diff --git a/src/utils.c b/src/utils.c +index 7ee9ba8..16719f6 100644 +--- a/src/utils.c ++++ b/src/utils.c +@@ -888,7 +888,7 @@ restart: + } + directory = opendir("/proc/self/fd"); + if (directory == NULL) { +- WARN("Failed to open directory: %m."); ++ WARN("Failed to open directory: /proc/self/fd."); + return -1; + } + +@@ -1307,10 +1307,10 @@ uint64_t lcr_util_trans_blkio_weight_to_io_weight(int weight) + return (uint64_t)(1 + ((uint64_t)weight - 10) * 9999 / 990); + } + +-uint64_t lcr_util_trans_blkio_weight_to_io_bfq_weight(int weight) ++uint64_t lcr_util_trans_blkio_weight_to_io_bfq_weight(uint64_t weight) + { + // map from [10-1000] to [1-1000] +- return (uint64_t)(1 + ((uint64_t)weight - 10) * 999 / 990); ++ return (uint64_t)(1 + (weight - 10) * 999 / 990); + } + + int lcr_util_get_cgroup_version() +diff --git a/src/utils.h b/src/utils.h +index 5aae95d..865b899 100644 +--- a/src/utils.h ++++ b/src/utils.h +@@ -219,7 +219,7 @@ int lcr_util_atomic_write_file(const char *filepath, const char *content); + int lcr_util_get_real_swap(int64_t memory, int64_t memory_swap, int64_t *swap); + int lcr_util_trans_cpushare_to_cpuweight(int64_t cpu_share); + uint64_t lcr_util_trans_blkio_weight_to_io_weight(int weight); +-uint64_t lcr_util_trans_blkio_weight_to_io_bfq_weight(int weight); ++uint64_t lcr_util_trans_blkio_weight_to_io_bfq_weight(uint64_t weight); + int lcr_util_get_cgroup_version(); + + #ifdef __cplusplus +diff --git a/third_party/libocispec/read_file.c b/third_party/libocispec/read_file.c +index 42b83b2..29dbec3 100644 +--- a/third_party/libocispec/read_file.c ++++ b/third_party/libocispec/read_file.c +@@ -29,7 +29,6 @@ + #endif + + #define JSON_MAX_SIZE (10LL * 1024LL * 1024LL) +-#define FILE_MODE 0640 + + static int do_check_fread_args(const FILE *stream, const size_t *length) + { +diff --git a/third_party/log.c b/third_party/log.c +index 2fcb014..c3c1981 100644 +--- a/third_party/log.c ++++ b/third_party/log.c +@@ -25,7 +25,6 @@ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif +-#define __STDC_FORMAT_MACROS /* Required for PRIu64 to work. */ + #include + #include + #include +@@ -267,7 +266,7 @@ static int log_append_logfile(const struct lxc_log_appender *appender, + if (ret < 0) + return 0; + +- n += ret; ++ n += (int)ret; + } + + if ((size_t)n >= sizeof(buffer)) +@@ -275,7 +274,7 @@ static int log_append_logfile(const struct lxc_log_appender *appender, + + buffer[n] = '\n'; + +- return lcr_util_write_nointr(fd_to_use, buffer, n + 1); ++ return lcr_util_write_nointr(fd_to_use, buffer, (size_t)n + 1); + } + + static struct lxc_log_appender log_appender_stderr = { +-- +2.25.1 + diff --git a/lcr.spec b/lcr.spec index 6ac5606..8803a48 100644 --- a/lcr.spec +++ b/lcr.spec @@ -1,5 +1,5 @@ %global _version 2.0.8 -%global _release 4 +%global _release 5 %global _inner_name isula_libutils Name: lcr @@ -17,6 +17,7 @@ Patch0001: 0001-feat-Add-json-spec-for-rest-resize-api.patch Patch0002: 0002-add-HAVE_ISULAD-definition-for-lxc-header.patch Patch0003: 0003-fix-cpu-quota-out-of-range-when-update-to-1.patch Patch0004: 0004-remove-unused-daemon-config-args.patch +Patch0005: 0005-refactor-handle-warnings.patch %define lxcver 4.0.3-2021112501 @@ -105,6 +106,12 @@ rm -rf %{buildroot} %{_includedir}/%{_inner_name}/*.h %changelog +* Mon Sep 19 2022 Neil.wrz - 2.0.8-5 +- Type: refactor +- ID: NA +- SUG: NA +- DESC: handle some warnings + * Wed Sep 07 2022 zhangxiaoyu - 2.0.8-4 - Type: enhancement - ID: NA