runc/patch/0049-runc-nsexec-Check-for-errors-in-write_log.patch
zhongjiawei e93fcb5f5a runc:symc some patches
(cherry picked from commit 6b3b6fb7d12f8699fd427a6001bf78e0937e1984)
2023-12-22 10:51:30 +08:00

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