From f24b091a485607de74612a30b875f59453cf162a Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Wed, 29 Feb 2012 20:47:08 +0100 Subject: [PATCH] conntrack plugin: Strip newlie before calling parse_value(). Change-Id: Ifa4db20a6b937912db77a214d2c0ef3eeebfa164 --- src/conntrack.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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); -- 2.11.0