From: Patrick Plagwitz Date: Mon, 6 Apr 2015 21:50:46 +0000 (+0100) Subject: logger: generate header when reading message from stdin X-Git-Tag: v2.27-rc1~287 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4a8919a4e5b28a47cd61fc8b774a6eaee943b90e;p=thirdparty%2Futil-linux.git logger: generate header when reading message from stdin This change fixes crashing error, that ought not to be simply avoided. $ echo foo | logger -n localhost Segmentation fault (core dumped) If the ctl->hdr is just checked not to be NULL syslog message will not have valid header, so generating such is not optional when reading message from stdin and writing it to remote destination. Reviewed-by: Bernhard Voelker Signed-off-by: Patrick Plagwitz Signed-off-by: Sami Kerola --- diff --git a/misc-utils/logger.c b/misc-utils/logger.c index edc94836b0..753cd7f995 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -582,14 +582,14 @@ static void logger_open(struct logger_ctl *ctl) ctl->fd = inet_socket(ctl->server, ctl->port, ctl->socket_type); if (!ctl->syslogfp) ctl->syslogfp = syslog_rfc5424_header; - return; - } - if (!ctl->unix_socket) - ctl->unix_socket = _PATH_DEVLOG; + } else { + if (!ctl->unix_socket) + ctl->unix_socket = _PATH_DEVLOG; - ctl->fd = unix_socket(ctl, ctl->unix_socket, ctl->socket_type); - if (!ctl->syslogfp) - ctl->syslogfp = syslog_local_header; + ctl->fd = unix_socket(ctl, ctl->unix_socket, ctl->socket_type); + if (!ctl->syslogfp) + ctl->syslogfp = syslog_local_header; + } if (!ctl->tag) ctl->tag = xgetlogin(); generate_syslog_header(ctl);