49 lines
1.4 KiB
Diff
49 lines
1.4 KiB
Diff
From 43397368ee7fd991b8b9cc496055d09413158293 Mon Sep 17 00:00:00 2001
|
|
From: Rodrigo Campos <rodrigoca@microsoft.com>
|
|
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 <rodrigoca@microsoft.com>
|
|
---
|
|
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
|
|
|