diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2002-11-10 21:33:28 +0000 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2002-11-10 21:33:28 +0000 |
commit | 907a240b1c4bbc65f9010f5b2fd31157f9d083c3 (patch) | |
tree | 88af504fae635390309cb999382c781c4f46ed0e /sysklogd/logger.c | |
parent | 5a7ec22c493a02106d892effeef78e65a4e6b4a0 (diff) |
last_patch57 from Vladimir N. Oleynik
Diffstat (limited to 'sysklogd/logger.c')
-rw-r--r-- | sysklogd/logger.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/sysklogd/logger.c b/sysklogd/logger.c index 4aa15101a..bb63975e7 100644 --- a/sysklogd/logger.c +++ b/sysklogd/logger.c @@ -105,8 +105,8 @@ extern int logger_main(int argc, char **argv) { int pri = LOG_USER | LOG_NOTICE; int option = 0; - int c, i, len, opt; - char *message=NULL, buf[1024], name[128]; + int c, i, opt; + char buf[1024], name[128]; /* Fill out the name string early (may be overwritten later) */ my_getpwuid(name, geteuid()); @@ -143,16 +143,21 @@ extern int logger_main(int argc, char **argv) } } while (c != EOF); } else { - len = 1; /* for the '\0' */ - message = xcalloc(1, 1); - for (i = optind; i < argc; i++) { - len += strlen(argv[i]); - len += 1; /* for the space between the args */ + char *message = NULL; + int len = argc - optind; /* for the space between the args + and '\0' */ + opt = len; + argv += optind; + for (i = 0; i < opt; i++) { + len += strlen(*argv); message = xrealloc(message, len); - strcat(message, argv[i]); + if(!i) + message[0] = 0; + else strcat(message, " "); + strcat(message, *argv); + argv++; } - message[strlen(message) - 2] = '\0'; syslog(pri, "%s", message); } |