Signed-off-by: Sami Kerola <kerolasa@xxxxxx> --- misc-utils/logger.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/misc-utils/logger.c b/misc-utils/logger.c index e3fc248..2e37d14 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -342,9 +342,10 @@ static void write_output(const struct logger_ctl *ctl, const char *const msg) fprintf(stderr, "%s\n", buf); } +#define NILVALUE "-" static void syslog_rfc3164_header(struct logger_ctl *const ctl) { - char pid[30], *hostname, *dot; + char pid[30], *hostname; *pid = '\0'; if (ctl->fd < 0) @@ -352,10 +353,12 @@ static void syslog_rfc3164_header(struct logger_ctl *const ctl) if (ctl->pid) snprintf(pid, sizeof(pid), "[%d]", ctl->pid); - hostname = xgethostname(); - dot = strchr(hostname, '.'); - if (dot) - *dot = '\0'; + if ((hostname = xgethostname())) { + char *dot = strchr(hostname, '.'); + if (dot) + *dot = '\0'; + } else + hostname = xstrdup(NILVALUE); xasprintf(&ctl->hdr, "<%d>%.15s %s %.200s%s: ", ctl->pri, rfc3164_current_time(), hostname, ctl->tag, pid); @@ -383,7 +386,6 @@ static void syslog_rfc3164_header(struct logger_ctl *const ctl) * specified RFC5424. The rest of the field mappings should be * pretty clear from RFC5424. -- Rainer Gerhards, 2015-03-10 */ -#define NILVALUE "-" static void syslog_rfc5424_header(struct logger_ctl *const ctl) { char *time; @@ -416,7 +418,8 @@ static void syslog_rfc5424_header(struct logger_ctl *const ctl) time = xstrdup(NILVALUE); if (ctl->rfc5424_host) { - hostname = xgethostname(); + if (!(hostname = xgethostname())) + hostname = xstrdup(NILVALUE); /* Arbitrary looking 'if (var < strlen()) checks originate from * RFC 5424 - 6 Syslog Message Format definition. */ if (255 < strlen(hostname)) -- 2.3.2 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html