From f9e0a62392fa62364bb7ac31a1cd4a8cc521cced Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Tue, 10 Feb 2026 15:58:06 +0100 Subject: [PATCH] sd-daemon: escape special characters in notification logging text Follow-up for 21eb636aaad28707bd371bdfd721dea66277e1f5 Our sd_notify() protocol uses newline as separator, which is not suitable for direct logging. --- src/libsystemd/sd-daemon/sd-daemon.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c index 8d7dd0823f7..2ab50287b4f 100644 --- a/src/libsystemd/sd-daemon/sd-daemon.c +++ b/src/libsystemd/sd-daemon/sd-daemon.c @@ -13,6 +13,7 @@ #include "alloc-util.h" #include "errno-util.h" +#include "escape.h" #include "extract-word.h" #include "fd-util.h" #include "fs-util.h" @@ -633,7 +634,11 @@ static int pid_notify_with_fds_internal( return log_debug_errno(SYNTHETIC_ERRNO(EPROTO), "Unexpectedly received data on notify socket."); } - log_debug("Notify message sent to '%s': \"%s\"", e, state); + if (DEBUG_LOGGING) { + _cleanup_free_ char *escaped = xescape_full(state, "\"", /* console_width = */ SIZE_MAX, XESCAPE_8_BIT); + log_debug("Notify message sent to '%s': \"%s\"", e, escaped ?: state); + } + return 1; } -- 2.47.3