From 115ac2e6cae2f95dfbcdd33b7ed40083331855b7 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 16 Mar 2026 11:09:13 +0100 Subject: [PATCH] cgroup: preserve errno on errors in rmdir_all_fd Closes: https://github.com/containers/crun/issues/2048 Signed-off-by: Giuseppe Scrivano --- src/libcrun/cgroup-utils.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libcrun/cgroup-utils.c b/src/libcrun/cgroup-utils.c index 1653ef49f7..f408a980f2 100644 --- a/src/libcrun/cgroup-utils.c +++ b/src/libcrun/cgroup-utils.c @@ -379,7 +379,13 @@ rmdir_all_fd (int dfd) child_dfd = openat (dfd, name, O_DIRECTORY | O_CLOEXEC); if (child_dfd < 0) - return child_dfd; + { + int saved_errno = errno; + closedir (dir); + dir = NULL; + errno = saved_errno; + return child_dfd; + } ret = read_pids_cgroup (child_dfd, true, &pids, &n_pids, &allocated, &tmp_err); if (UNLIKELY (ret < 0))