diff --git a/Changelog b/Changelog index 90212119f..3095c95cb 100644 --- a/Changelog +++ b/Changelog @@ -45,6 +45,7 @@ * Mark Whitley -- remix of xargs * Jim Gleason -- fixed tar so it no longer breaks hard links. + * Matt Kraai -- logger now logs all arguments, not just the first -Erik Andersen diff --git a/logger.c b/logger.c index 1ed6dc639..1c454e5af 100644 --- a/logger.c +++ b/logger.c @@ -149,10 +149,19 @@ extern int logger_main(int argc, char **argv) } message = buf; } else { - if (argc >= 1) - message = *argv; - else + if (argc >= 1) { + int len = 1; /* for the '\0' */ + for (; *argv != NULL; argv++) { + len += strlen(*argv); + len += 1; /* for the space between the args */ + message = xrealloc(message, len); + strcat(message, *argv); + strcat(message, " "); + } + message[strlen(message)-1] = '\0'; + } else { error_msg_and_die("No message\n"); + } } openlog(name, option, (pri | LOG_FACMASK)); diff --git a/sysklogd/logger.c b/sysklogd/logger.c index 1ed6dc639..1c454e5af 100644 --- a/sysklogd/logger.c +++ b/sysklogd/logger.c @@ -149,10 +149,19 @@ extern int logger_main(int argc, char **argv) } message = buf; } else { - if (argc >= 1) - message = *argv; - else + if (argc >= 1) { + int len = 1; /* for the '\0' */ + for (; *argv != NULL; argv++) { + len += strlen(*argv); + len += 1; /* for the space between the args */ + message = xrealloc(message, len); + strcat(message, *argv); + strcat(message, " "); + } + message[strlen(message)-1] = '\0'; + } else { error_msg_and_die("No message\n"); + } } openlog(name, option, (pri | LOG_FACMASK));