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