From 382382a6eb990babb264ff89715b0e46f0924a4b Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 21 Jan 2026 15:35:39 +0100 Subject: [PATCH 1/3] sysupdate-resource: on hash mismatch the best before marker is not ignored Hence use a less ambiguous wording. Follow-up for d0badc0a619e15c67d38f65730ac210316ece84c Addresses https://github.com/systemd/systemd/pull/40393#discussion_r2709953179 --- src/sysupdate/sysupdate-resource.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sysupdate/sysupdate-resource.c b/src/sysupdate/sysupdate-resource.c index bd11631539..c9e6981261 100644 --- a/src/sysupdate/sysupdate-resource.c +++ b/src/sysupdate/sysupdate-resource.c @@ -382,7 +382,7 @@ static int process_magic_file( * so that people fix it. After all we want to retain liberty to maybe one day place some useful data * inside it */ if (iovec_memcmp(&IOVEC_MAKE(expected_hash, sizeof(expected_hash)), hash) != 0) - log_warning("Hash of best before marker file '%s' has unexpected value, ignoring.", fn); + log_warning("Hash of best before marker file '%s' has unexpected value, proceeding anyway.", fn); struct tm parsed_tm = {}; const char *n = strptime(e, "%Y-%m-%d", &parsed_tm); From 1886047e596a236c5f404fc2891fc7987f155dc0 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 21 Jan 2026 15:49:47 +0100 Subject: [PATCH 2/3] fdset: sort includes --- src/shared/fdset.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/fdset.h b/src/shared/fdset.h index a0d4e6d163..429b334bc1 100644 --- a/src/shared/fdset.h +++ b/src/shared/fdset.h @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "shared-forward.h" #include "iterator.h" +#include "shared-forward.h" FDSet* fdset_new(void); FDSet* fdset_free(FDSet *s); From 13c0351ba410e5cf9d12ef6085fe01d209aaeacf Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 21 Jan 2026 15:39:22 +0100 Subject: [PATCH 3/3] fdset: do not call fd_get_path() if debug logging is off Follow-up for 89065ada83af55ed9e2350c2df7e315e2e6ad043 --- src/shared/fdset.c | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/shared/fdset.c b/src/shared/fdset.c index f340f41b0e..9c145739e1 100644 --- a/src/shared/fdset.c +++ b/src/shared/fdset.c @@ -183,7 +183,7 @@ int fdset_new_fill( return log_debug_errno(SYNTHETIC_ERRNO(ENOSYS), "Failed to open /proc/self/fd/, /proc/ is not mounted."); - return log_debug_errno(errno, "Failed to open /proc/self/fd/: %m "); + return log_debug_errno(errno, "Failed to open /proc/self/fd/: %m"); } s = fdset_new(); @@ -214,11 +214,14 @@ int fdset_new_fill( fl = RET_NERRNO(fcntl(fd, F_GETFD)); if (fl < 0) { - _cleanup_free_ char *path = NULL; - (void) fd_get_path(fd, &path); - return log_debug_errno(fl, - "Failed to get flag of fd=%d (%s): %m ", - fd, strna(path)); + if (DEBUG_LOGGING) { + _cleanup_free_ char *path = NULL; + (void) fd_get_path(fd, &path); + log_debug_errno(fl, "Failed to get flags of fd=%d (%s): %m", + fd, strna(path)); + } + + return fl; } if (FLAGS_SET(fl, FD_CLOEXEC) != !!filter_cloexec) @@ -229,21 +232,27 @@ int fdset_new_fill( if (filter_cloexec <= 0) { r = fd_cloexec(fd, true); if (r < 0) { - _cleanup_free_ char *path = NULL; - (void) fd_get_path(fd, &path); - return log_debug_errno(r, - "Failed to set CLOEXEC flag fd=%d (%s): %m ", - fd, strna(path)); + if (DEBUG_LOGGING) { + _cleanup_free_ char *path = NULL; + (void) fd_get_path(fd, &path); + log_debug_errno(r, "Failed to set CLOEXEC flag on fd=%d (%s): %m", + fd, strna(path)); + } + + return r; } } r = fdset_put(s, fd); if (r < 0) { - _cleanup_free_ char *path = NULL; - (void) fd_get_path(fd, &path); - return log_debug_errno(r, - "Failed to put fd=%d (%s) into fdset: %m ", - fd, strna(path)); + if (DEBUG_LOGGING) { + _cleanup_free_ char *path = NULL; + (void) fd_get_path(fd, &path); + log_debug_errno(r, "Failed to put fd=%d (%s) into fdset: %m", + fd, strna(path)); + } + + return r; } }