From 069a36a0fbd5202ca6cf0d34550381b3bf1e3eb2 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu Date: Sat, 27 May 2023 17:10:55 +0800 Subject: [PATCH 12/15] fix hugetlbs malloc length Signed-off-by: zhangxiaoyu --- src/cmd/isulad-shim/common.c | 5 ++++- src/daemon/modules/service/inspect_container.c | 2 +- src/utils/cutils/utils.c | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/cmd/isulad-shim/common.c b/src/cmd/isulad-shim/common.c index 3787cdfb..7fa3c836 100644 --- a/src/cmd/isulad-shim/common.c +++ b/src/cmd/isulad-shim/common.c @@ -381,7 +381,10 @@ void util_usleep_nointerupt(unsigned long usec) void *util_smart_calloc_s(size_t unit_size, size_t count) { - if (unit_size == 0) { + // If count or size is 0, + // then calloc() returns either NULL, + // or a unique pointer value that can later be successfully passed to free() + if (unit_size == 0 || count == 0) { return NULL; } diff --git a/src/daemon/modules/service/inspect_container.c b/src/daemon/modules/service/inspect_container.c index b1050bc7..40cf7aa1 100644 --- a/src/daemon/modules/service/inspect_container.c +++ b/src/daemon/modules/service/inspect_container.c @@ -751,7 +751,7 @@ static int pack_inspect_resources(const container_t *cont, container_inspect *in resources->memory = cont->hostconfig->memory; resources->memory_swap = cont->hostconfig->memory_swap; resources->hugetlbs = util_smart_calloc_s(sizeof(container_inspect_resources_hugetlbs_element *), - resources->hugetlbs_len); + cont->hostconfig->hugetlbs_len); if (resources->hugetlbs == NULL) { ERROR("Out of memory"); ret = -1; diff --git a/src/utils/cutils/utils.c b/src/utils/cutils/utils.c index 3500d8f8..103c7c5b 100644 --- a/src/utils/cutils/utils.c +++ b/src/utils/cutils/utils.c @@ -253,7 +253,10 @@ int util_sig_parse(const char *sig_name) void *util_smart_calloc_s(size_t unit_size, size_t count) { - if (unit_size == 0) { + // If count or size is 0, + // then calloc() returns either NULL, + // or a unique pointer value that can later be successfully passed to free() + if (unit_size == 0 || count == 0) { return NULL; } -- 2.25.1