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 <mail@bernhard-voelker.de>
Signed-off-by: Patrick Plagwitz <patrick.plagwitz@fau.de>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Patrick Plagwitz 2015-04-06 22:50:46 +01:00 committed by Sami Kerola
parent 890e103559
commit 4a8919a4e5
1 changed files with 7 additions and 7 deletions

View File

@ -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);