!566 [sync] PR-565: fix memrealloc size error

Merge pull request !566 from openeuler-sync-bot/sync-pr565-openEuler-22.03-LTS-to-openEuler-22.03-LTS-Next
This commit is contained in:
haozi007 2023-05-06 01:51:47 +00:00 committed by Gitee
commit dc38bd4e81
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 124 additions and 1 deletions

View File

@ -0,0 +1,27 @@
From c376da6d86e52bb5eceaa8357b80e81591e05f7b Mon Sep 17 00:00:00 2001
From: "Neil.wrz" <wangrunze13@huawei.com>
Date: Thu, 27 Apr 2023 05:20:31 -0700
Subject: [PATCH 58/58] fix memrealloc size error
Signed-off-by: Neil.wrz <wangrunze13@huawei.com>
---
src/daemon/modules/service/service_container.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/daemon/modules/service/service_container.c b/src/daemon/modules/service/service_container.c
index 6dc06c83..9960ace1 100644
--- a/src/daemon/modules/service/service_container.c
+++ b/src/daemon/modules/service/service_container.c
@@ -1580,7 +1580,8 @@ static int do_append_process_exec_env(const char **default_env, defs_process *sp
ret = -1;
goto out;
}
- new_size = (spec->env_len + default_env_len) * sizeof(char *);
+ // new_size = old_size + default_env_len + 1(null as terminator)
+ new_size = (spec->env_len + default_env_len + 1) * sizeof(char *);
old_size = spec->env_len * sizeof(char *);
ret = util_mem_realloc((void **)&temp, new_size, spec->env, old_size);
if (ret != 0) {
--
2.25.1

View File

@ -0,0 +1,88 @@
From 17abc741624f084d5c2d7cf16acb28109bf0a72a Mon Sep 17 00:00:00 2001
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
Date: Fri, 5 May 2023 15:13:52 +0800
Subject: [PATCH 59/59] convert struct lcr start/exec request
Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
---
.../modules/runtime/engines/lcr/lcr_engine.c | 58 +++++++++++++++++--
1 file changed, 54 insertions(+), 4 deletions(-)
diff --git a/src/daemon/modules/runtime/engines/lcr/lcr_engine.c b/src/daemon/modules/runtime/engines/lcr/lcr_engine.c
index 2ca12545..34292ce3 100644
--- a/src/daemon/modules/runtime/engines/lcr/lcr_engine.c
+++ b/src/daemon/modules/runtime/engines/lcr/lcr_engine.c
@@ -102,16 +102,66 @@ static bool lcr_update_container(const char *name, const char *lcrpath, const st
static bool lcr_start_container(const engine_start_request_t *request)
{
- struct lcr_start_request *lcr_request = (struct lcr_start_request *)request;
+ struct lcr_start_request lcr_request = { 0 };
- return g_lcr_start_op(lcr_request);
+ if (g_lcr_start_op == NULL) {
+ ERROR("Not supported start operation");
+ return false;
+ }
+
+ if (request == NULL) {
+ ERROR("Empty start request");
+ return false;
+ }
+
+ lcr_request.name = request->name;
+ lcr_request.lcrpath = request->lcrpath;
+ lcr_request.logpath = request->logpath;
+ lcr_request.loglevel = request->loglevel;
+ lcr_request.daemonize = request->daemonize;
+ lcr_request.tty = request->tty;
+ lcr_request.open_stdin = request->open_stdin;
+ lcr_request.console_fifos = request->console_fifos;
+ lcr_request.start_timeout = request->start_timeout;
+ lcr_request.container_pidfile = request->container_pidfile;
+ lcr_request.exit_fifo = request->exit_fifo;
+ lcr_request.image_type_oci = request->image_type_oci;
+
+ return g_lcr_start_op(&lcr_request);
}
static bool lcr_exec_container(const engine_exec_request_t *request, int *exit_code)
{
- struct lcr_exec_request *lcr_request = (struct lcr_exec_request *)request;
+ struct lcr_exec_request lcr_request = { 0 };
+
+ if (g_lcr_exec_op == NULL) {
+ ERROR("Not supported exec operation");
+ return false;
+ }
+
+ if (request == NULL) {
+ ERROR("Empty exec request");
+ return false;
+ }
- return g_lcr_exec_op(lcr_request, exit_code);
+ lcr_request.name = request->name;
+ lcr_request.lcrpath = request->lcrpath;
+ lcr_request.logpath = request->logpath;
+ lcr_request.loglevel = request->loglevel;
+ lcr_request.console_fifos = request->console_fifos;
+ lcr_request.user = request->user;
+ lcr_request.add_gids = request->add_gids;
+ lcr_request.env = request->env;
+ lcr_request.env_len = request->env_len;
+ lcr_request.args = request->args;
+ lcr_request.args_len = request->args_len;
+ lcr_request.timeout = request->timeout;
+ lcr_request.suffix = request->suffix;
+ lcr_request.tty = request->tty;
+ lcr_request.open_stdin = request->open_stdin;
+ lcr_request.workdir = (char *)request->workdir;
+
+ return g_lcr_exec_op(&lcr_request, exit_code);
}
/*
--
2.25.1

View File

@ -1,5 +1,5 @@
%global _version 2.0.18
%global _release 6
%global _release 7
%global is_systemd 1
%global enable_shimv2 1
%global is_embedded 1
@ -70,6 +70,8 @@ Patch0054: 0054-refactor-remote-ro-code.patch
Patch0055: 0055-bugfix-when-refresh-can-t-load-or-pull-images.patch
Patch0056: 0056-remove-unused-headers.patch
Patch0057: 0057-change-isulad-shim-epoll-struct.patch
Patch0058: 0058-fix-memrealloc-size-error.patch
Patch0059: 0059-convert-struct-lcr-start-exec-request.patch
%ifarch x86_64 aarch64
Provides: libhttpclient.so()(64bit)
@ -314,6 +316,12 @@ fi
%endif
%changelog
* Fri May 05 2023 wangrunze<wangrunze13@huawei.com> - 2.0.18-7
- Type: bugfix
- ID: NA
- SUG: NA
- DESC: fix memrealloc size error and convert struct
* Thu May 04 2023 zhangxiaoyu <zhangxiaoyu58@huawei.com> - 2.0.18-6
- Type: bugfix
- ID: NA