X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Futils_ignorelist.c;h=0ad252bb79336bb6d98e11613a5c03b698a6de58;hp=bf39597e914ec0381274e105ac7dfe6686ec3574;hb=633c3966f770e4d46651a2fe219a18d8a9907a9f;hpb=8a384e732834fb5d42d9ff4ebec40482fb07372e diff --git a/src/utils_ignorelist.c b/src/utils_ignorelist.c index bf39597e..0ad252bb 100644 --- a/src/utils_ignorelist.c +++ b/src/utils_ignorelist.c @@ -1,6 +1,7 @@ /** * collectd - src/utils_ignorelist.c * Copyright (C) 2006 Lubos Stanek + * Copyright (C) 2008 Florian Forster * * This program is free software; you can redistribute it and/ * or modify it under the terms of the GNU General Public Li- @@ -19,6 +20,7 @@ * * Authors: * Lubos Stanek + * Florian Forster **/ /** * ignorelist handles plugin's list of configured collectable @@ -217,10 +219,6 @@ ignorelist_t *ignorelist_create (int invert) /* smalloc exits if it failes */ il = (ignorelist_t *) smalloc (sizeof (ignorelist_t)); - DEBUG("Ignorelist created 0x%p, default is %s", - (void *) il, - invert ? "collect" : "ignore"); - memset (il, '\0', sizeof (ignorelist_t)); /* @@ -308,11 +306,12 @@ int ignorelist_add (ignorelist_t *il, const char *entry) if ((entry_len > 2) && (entry[0] == '/') && entry[entry_len - 1] == '/') { char *entry_copy; + size_t entry_copy_size; /* We need to copy `entry' since it's const */ - entry_copy = smalloc (entry_len); - memset (entry_copy, '\0', entry_len); - strncpy (entry_copy, entry + 1, entry_len - 2); + entry_copy_size = entry_len - 1; + entry_copy = smalloc (entry_copy_size); + sstrncpy (entry_copy, entry + 1, entry_copy_size); DEBUG("I'm about to add regex entry: %s", entry_copy); ret = ignorelist_append_regex(il, entry_copy); @@ -336,10 +335,8 @@ int ignorelist_match (ignorelist_t *il, const char *entry) { ignorelist_item_t *traverse; - assert (il != NULL); - /* if no entries, collect all */ - if (il->head == NULL) + if ((il == NULL) || (il->head == NULL)) return (0); if ((entry == NULL) || (strlen (entry) == 0))