X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fiptables.c;h=9abee364b1fc36b0e3906927d647ac8165cd738d;hb=6e419a825c50f9c97471aba7d50521bfc7e19828;hp=576cd63eabc0836d123c686dfde21405d7a18dcb;hpb=cacaa2126020832df99fa6423147bd3de6d4faae;p=collectd.git diff --git a/src/iptables.c b/src/iptables.c index 576cd63e..9abee364 100644 --- a/src/iptables.c +++ b/src/iptables.c @@ -25,7 +25,9 @@ #include "plugin.h" #include "configfile.h" -#if HAVE_LIBIPTC_LIBIPTC_H +#if OWN_LIBIPTC +# include "libiptc/libiptc.h" +#else # include #endif @@ -105,8 +107,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); @@ -114,8 +116,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); @@ -216,9 +218,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); @@ -239,11 +240,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);