From: Mike Yuan Date: Tue, 10 Feb 2026 14:58:06 +0000 (+0100) Subject: sd-daemon: escape special characters in notification logging text X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9e0a62392fa62364bb7ac31a1cd4a8cc521cced;p=thirdparty%2Fsystemd.git 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. --- 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; }