From: Volker Lendecke Date: Tue, 19 Dec 2023 13:44:12 +0000 (+0100) Subject: lib: Avoid memcpy in debug_systemd_log() X-Git-Tag: talloc-2.4.2~153 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f8a75f830774a6f32ed834cd3d17ba8804fddb82;p=thirdparty%2Fsamba.git lib: Avoid memcpy in debug_systemd_log() sd_journal_send() understands the %.*s format. Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher --- diff --git a/lib/util/debug.c b/lib/util/debug.c index f1f91ebe7a7..0dd8e2e954b 100644 --- a/lib/util/debug.c +++ b/lib/util/debug.c @@ -366,24 +366,33 @@ static void debug_syslog_log(int msg_level, const char *msg, size_t msg_len) static void debug_systemd_log(int msg_level, const char *msg, size_t msg_len) { if (state.hs_len > 0) { - ensure_copy_no_nl(state.header_str_no_nl, - sizeof(state.header_str_no_nl), - state.header_str, - state.hs_len); - sd_journal_send("MESSAGE=%s", - state.header_str_no_nl, + size_t len = state.hs_len; + + if (state.header_str[len - 1] == '\n') { + len -= 1; + } + + sd_journal_send("MESSAGE=%.*s", + (int)len, + state.header_str, "PRIORITY=%d", debug_level_to_priority(msg_level), "LEVEL=%d", msg_level, NULL); } - ensure_copy_no_nl(state.msg_no_nl, - sizeof(state.msg_no_nl), - msg, msg_len); - sd_journal_send("MESSAGE=%s", state.msg_no_nl, - "PRIORITY=%d", debug_level_to_priority(msg_level), - "LEVEL=%d", msg_level, + + if ((msg_len > 0) && (msg[msg_len - 1] == '\n')) { + msg_len -= 1; + } + + sd_journal_send("MESSAGE=%.*s", + (int)msg_len, + msg, + "PRIORITY=%d", + debug_level_to_priority(msg_level), + "LEVEL=%d", + msg_level, NULL); } #endif