X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fbind.c;h=dc7916a874e1c990d47cb8cb87c716e13235da7e;hb=be126043c2be20399d7670fe194645292018bde0;hp=02bffd3d226d9db6a64a548952d5cffdf46a2ad7;hpb=c144ae4659e129a929afb67706a54604220fef43;p=collectd.git diff --git a/src/bind.c b/src/bind.c index 02bffd3d..dc7916a8 100644 --- a/src/bind.c +++ b/src/bind.c @@ -522,8 +522,10 @@ static int bind_parse_generic_name_value(const char *xpath_expression, /* {{{ */ status = bind_xml_read_gauge(doc, counter, &value.gauge); else status = bind_xml_read_derive(doc, counter, &value.derive); - if (status != 0) + if (status != 0) { + xmlFree(name); continue; + } status = (*list_callback)(name, value, current_time, user_data); if (status == 0) @@ -655,12 +657,16 @@ static int bind_parse_generic_name_attr_value_list( status = bind_xml_read_gauge(doc, child, &value.gauge); else status = bind_xml_read_derive(doc, child, &value.derive); - if (status != 0) + if (status != 0) { + xmlFree(attr_name); continue; + } status = (*list_callback)(attr_name, value, current_time, user_data); if (status == 0) num_entries++; + + xmlFree(attr_name); } } @@ -731,7 +737,7 @@ static int bind_xml_stats_handle_zone(int version, xmlDoc *doc, /* {{{ */ nsstats_translation_table_length, plugin_instance}; - ssnprintf(plugin_instance, sizeof(plugin_instance), "%s-zone-%s", + snprintf(plugin_instance, sizeof(plugin_instance), "%s-zone-%s", view->name, zone_name); if (version == 3) { @@ -862,7 +868,7 @@ static int bind_xml_stats_handle_view(int version, xmlDoc *doc, /* {{{ */ list_info_ptr_t list_info = {plugin_instance, /* type = */ "dns_qtype"}; - ssnprintf(plugin_instance, sizeof(plugin_instance), "%s-qtypes", + snprintf(plugin_instance, sizeof(plugin_instance), "%s-qtypes", view->name); if (version == 3) { bind_parse_generic_name_attr_value_list( @@ -885,7 +891,7 @@ static int bind_xml_stats_handle_view(int version, xmlDoc *doc, /* {{{ */ resstats_translation_table_length, plugin_instance}; - ssnprintf(plugin_instance, sizeof(plugin_instance), "%s-resolver_stats", + snprintf(plugin_instance, sizeof(plugin_instance), "%s-resolver_stats", view->name); if (version == 3) { bind_parse_generic_name_attr_value_list( @@ -908,7 +914,7 @@ static int bind_xml_stats_handle_view(int version, xmlDoc *doc, /* {{{ */ list_info_ptr_t list_info = {plugin_instance, /* type = */ "dns_qtype_cached"}; - ssnprintf(plugin_instance, sizeof(plugin_instance), "%s-cache_rr_sets", + snprintf(plugin_instance, sizeof(plugin_instance), "%s-cache_rr_sets", view->name); bind_parse_generic_name_value(/* xpath = */ "cache/rrset",