X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Ftail.c;h=708cd2a32737e0a10678bc7d650c48c4c6029ba8;hb=f7b05ebf3311b4c6cb5289f1f7cd8ee02918ef92;hp=ab063389a739fe64e561617f19e37158d6fcb869;hpb=9817e7298bd6c364fa17347327af54adf048bd21;p=collectd.git diff --git a/src/tail.c b/src/tail.c index ab063389..708cd2a3 100644 --- a/src/tail.c +++ b/src/tail.c @@ -224,7 +224,6 @@ static int ctail_config_add_file (oconfig_item_t *ci) cdtime_t interval = 0; char *plugin_instance = NULL; int num_matches = 0; - int status; int i; if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING)) @@ -237,14 +236,14 @@ static int ctail_config_add_file (oconfig_item_t *ci) if (tm == NULL) { ERROR ("tail plugin: tail_match_create (%s) failed.", - ci->values[0].value.string); + ci->values[0].value.string); return (-1); } - status = 0; for (i = 0; i < ci->children_num; i++) { oconfig_item_t *option = ci->children + i; + int status = 0; if (strcasecmp ("Instance", option->key) == 0) status = cf_util_get_string (option, &plugin_instance); @@ -254,7 +253,7 @@ static int ctail_config_add_file (oconfig_item_t *ci) { status = ctail_config_add_match (tm, plugin_instance, option, interval); if (status == 0) - num_matches++; + num_matches++; /* Be mild with failed matches.. */ status = 0; } @@ -267,10 +266,12 @@ static int ctail_config_add_file (oconfig_item_t *ci) break; } /* for (i = 0; i < ci->children_num; i++) */ + sfree (plugin_instance); + if (num_matches == 0) { ERROR ("tail plugin: No (valid) matches found for file `%s'.", - ci->values[0].value.string); + ci->values[0].value.string); tail_match_destroy (tm); return (-1); } @@ -279,7 +280,7 @@ static int ctail_config_add_file (oconfig_item_t *ci) cu_tail_match_t **temp; temp = (cu_tail_match_t **) realloc (tail_match_list, - sizeof (cu_tail_match_t *) * (tail_match_list_num + 1)); + sizeof (cu_tail_match_t *) * (tail_match_list_num + 1)); if (temp == NULL) { ERROR ("tail plugin: realloc failed."); @@ -342,6 +343,8 @@ static int ctail_init (void) return (-1); } + memset(&ud, '\0', sizeof(ud)); + for (i = 0; i < tail_match_list_num; i++) { ud.data = (void *)tail_match_list[i];