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:
parent
890e103559
commit
4a8919a4e5
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue