X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fiptables.c;h=12275cd09921aa594ba0e2f80e49b6c3da296780;hb=526320a0389a54a3629038fe6b34da8c6d4eec0e;hp=dc69f6be49c4e85c1d8522b0b00ec7201733778c;hpb=430b0b4d0275f7fea64376fc166e81fc0bcc36bf;p=collectd.git diff --git a/src/iptables.c b/src/iptables.c index dc69f6be..12275cd0 100644 --- a/src/iptables.c +++ b/src/iptables.c @@ -1,6 +1,7 @@ /** * collectd - src/iptables.c * Copyright (C) 2007 Sjoerd van der Berg + * Copyright (C) 2007 Florian octo Forster * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -18,6 +19,7 @@ * * Authors: * Sjoerd van der Berg + * Florian Forster **/ #include "collectd.h" @@ -107,8 +109,8 @@ static int iptables_config (const char *key, const char *value) table = fields[0]; chain = fields[1]; - table_len = strlen (table); - if ((unsigned int)table_len >= sizeof(temp.table)) + table_len = strlen (table) + 1; + if ((unsigned int)table_len > sizeof(temp.table)) { ERROR ("Table `%s' too long.", table); free (value_copy); @@ -116,8 +118,8 @@ static int iptables_config (const char *key, const char *value) } sstrncpy (temp.table, table, table_len); - chain_len = strlen (chain); - if ((unsigned int)chain_len >= sizeof(temp.chain)) + chain_len = strlen (chain) + 1; + if ((unsigned int)chain_len > sizeof(temp.chain)) { ERROR ("Chain `%s' too long.", chain); free (value_copy); @@ -218,9 +220,8 @@ static int submit_match (const struct ipt_entry_match *match, vl.values = values; vl.values_len = 1; - vl.time = time (NULL); - strcpy (vl.host, hostname_g); - strcpy (vl.plugin, "iptables"); + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + sstrncpy (vl.plugin, "iptables", sizeof (vl.plugin)); status = ssnprintf (vl.plugin_instance, sizeof (vl.plugin_instance), "%s-%s", chain->table, chain->chain); @@ -241,11 +242,11 @@ static int submit_match (const struct ipt_entry_match *match, sizeof (vl.type_instance)); } - strcpy (vl.type, "ipt_bytes"); + sstrncpy (vl.type, "ipt_bytes", sizeof (vl.type)); values[0].counter = (counter_t) entry->counters.bcnt; plugin_dispatch_values (&vl); - strcpy (vl.type, "ipt_packets"); + sstrncpy (vl.type, "ipt_packets", sizeof (vl.type)); values[0].counter = (counter_t) entry->counters.pcnt; plugin_dispatch_values (&vl);