syslogd: Strip whitespace in rule between action and option
Terminate action filename/pipe/host so we don't get any trailing tab or space character in file or host names. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
parent
ff27d39cca
commit
11a16e16b8
@ -2455,6 +2455,16 @@ static void cfopts(char *ptr, struct filed *f)
|
|||||||
{
|
{
|
||||||
char *opt;
|
char *opt;
|
||||||
|
|
||||||
|
/* First locate any whitespace between action and option */
|
||||||
|
ptr = strpbrk(ptr, "\t ;");
|
||||||
|
if (!ptr)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Insert NUL character after action */
|
||||||
|
if (*ptr != ';')
|
||||||
|
*ptr++ = 0;
|
||||||
|
|
||||||
|
/* Parse options */
|
||||||
opt = strtok(ptr, ";");
|
opt = strtok(ptr, ";");
|
||||||
while (opt) {
|
while (opt) {
|
||||||
if (cfopt(&opt, "RFC5424"))
|
if (cfopt(&opt, "RFC5424"))
|
||||||
@ -2629,7 +2639,7 @@ static struct filed *cfline(char *line)
|
|||||||
cfopts(p, f);
|
cfopts(p, f);
|
||||||
|
|
||||||
(void)strcpy(f->f_un.f_forw.f_hname, ++p);
|
(void)strcpy(f->f_un.f_forw.f_hname, ++p);
|
||||||
logit("forwarding host: %s\n", p); /*ASP*/
|
logit("forwarding host: '%s'\n", p); /*ASP*/
|
||||||
memset(&hints, 0, sizeof(hints));
|
memset(&hints, 0, sizeof(hints));
|
||||||
hints.ai_family = family;
|
hints.ai_family = family;
|
||||||
hints.ai_socktype = SOCK_DGRAM;
|
hints.ai_socktype = SOCK_DGRAM;
|
||||||
@ -2655,7 +2665,7 @@ static struct filed *cfline(char *line)
|
|||||||
cfopts(p, f);
|
cfopts(p, f);
|
||||||
|
|
||||||
(void)strcpy(f->f_un.f_fname, p);
|
(void)strcpy(f->f_un.f_fname, p);
|
||||||
logit("filename: %s\n", p); /*ASP*/
|
logit("filename: '%s'\n", p); /*ASP*/
|
||||||
if (syncfile)
|
if (syncfile)
|
||||||
f->f_flags |= SYNC_FILE;
|
f->f_flags |= SYNC_FILE;
|
||||||
if (*p == '|') {
|
if (*p == '|') {
|
||||||
|
Loading…
Reference in New Issue
Block a user