X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fconntrack.c;h=33236c45975c4d9c5c519e4defbfcd029c0b0821;hb=c6da31fb30c2fb1d131f92efcde0b3ec9a010b2c;hp=4d6771244721c9d8e6c3049502de338e3b7e73e8;hpb=a1a7bcd42316459361cce17e4742e2f2eb664c60;p=collectd.git diff --git a/src/conntrack.c b/src/conntrack.c index 4d677124..33236c45 100644 --- a/src/conntrack.c +++ b/src/conntrack.c @@ -49,11 +49,13 @@ static int conntrack_read (void) value_t conntrack; FILE *fh; char buffer[64]; + size_t buffer_len; fh = fopen (CONNTRACK_FILE, "r"); if (fh == NULL) return (-1); + memset (buffer, 0, sizeof (buffer)); if (fgets (buffer, sizeof (buffer), fh) == NULL) { fclose (fh); @@ -61,7 +63,15 @@ static int conntrack_read (void) } fclose (fh); - if (parse_value (buffer, &conntrack, DS_TYPE_GAUGE) == -1) + /* strip trailing newline. */ + buffer_len = strlen (buffer); + while ((buffer_len > 0) && isspace ((int) buffer[buffer_len - 1])) + { + buffer[buffer_len - 1] = 0; + buffer_len--; + } + + if (parse_value (buffer, &conntrack, DS_TYPE_GAUGE) != 0) return (-1); conntrack_submit (conntrack);