projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
curl_xml: fix 3 small memory leaks
[collectd.git]
/
src
/
conntrack.c
diff --git
a/src/conntrack.c
b/src/conntrack.c
index
4d67712
..
33236c4
100644
(file)
--- 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];
value_t conntrack;
FILE *fh;
char buffer[64];
+ size_t buffer_len;
fh = fopen (CONNTRACK_FILE, "r");
if (fh == NULL)
return (-1);
fh = fopen (CONNTRACK_FILE, "r");
if (fh == NULL)
return (-1);
+ memset (buffer, 0, sizeof (buffer));
if (fgets (buffer, sizeof (buffer), fh) == NULL)
{
fclose (fh);
if (fgets (buffer, sizeof (buffer), fh) == NULL)
{
fclose (fh);
@@
-61,7
+63,15
@@
static int conntrack_read (void)
}
fclose (fh);
}
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);
return (-1);
conntrack_submit (conntrack);