From 43397368ee7fd991b8b9cc496055d09413158293 Mon Sep 17 00:00:00 2001 From: Rodrigo Campos Date: Fri, 27 Jan 2023 18:38:30 +0100 Subject: [PATCH 4/4] nsexec: Check for errors in write_log() First, check if strdup() fails and error out. While we are there, the else case was missing brackets, as we only need to check ret in the else case. Fix that too Reference:https://github.com/opencontainers/runc/commit/5ce511d6a65809be3fc58f8e2df585abb9c616d6 Signed-off-by: Rodrigo Campos --- libcontainer/nsenter/nsexec.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c index 96bf5b7d..1dfd8613 100644 --- a/libcontainer/nsenter/nsexec.c +++ b/libcontainer/nsenter/nsexec.c @@ -168,15 +168,17 @@ static void write_log(int level, const char *format, ...) message = escape_json_string(message); - if (current_stage == STAGE_SETUP) + if (current_stage == STAGE_SETUP) { stage = strdup("nsexec"); - else + if (stage == NULL) + goto out; + } else { ret = asprintf(&stage, "nsexec-%d", current_stage); - if (ret < 0) { - stage = NULL; - goto out; + if (ret < 0) { + stage = NULL; + goto out; + } } - ret = asprintf(&json, "{\"level\":\"%s\", \"msg\": \"%s[%d]: %s\"}\n", level_str[level], stage, getpid(), message); if (ret < 0) { -- 2.27.0