X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdaemon%2Fconfigfile.c;h=697daad31a039c65aa1075fb567f7d2fa52f80fc;hb=a72ad42076337f3b85db3b06565ae86a83226ab3;hp=8bf6b8d7e69a92e62521cd3618b1938c7635c2eb;hpb=87f8f66a84e78fd37dd2767c032ce74924d31dfd;p=collectd.git diff --git a/src/daemon/configfile.c b/src/daemon/configfile.c index 8bf6b8d7..697daad3 100644 --- a/src/daemon/configfile.c +++ b/src/daemon/configfile.c @@ -200,7 +200,7 @@ static int dispatch_global_option(const oconfig_item_t *ci) { return global_option_set(ci->key, ci->values[0].value.string, 0); else if (ci->values[0].type == OCONFIG_TYPE_NUMBER) { char tmp[128]; - snprintf(tmp, sizeof(tmp), "%lf", ci->values[0].value.number); + ssnprintf(tmp, sizeof(tmp), "%lf", ci->values[0].value.number); return global_option_set(ci->key, tmp, 0); } else if (ci->values[0].type == OCONFIG_TYPE_BOOLEAN) { if (ci->values[0].value.boolean) @@ -311,13 +311,13 @@ static int dispatch_value_plugin(const char *plugin, oconfig_item_t *ci) { if (ci->values[i].type == OCONFIG_TYPE_STRING) status = - snprintf(buffer_ptr, buffer_free, " %s", ci->values[i].value.string); + ssnprintf(buffer_ptr, buffer_free, " %s", ci->values[i].value.string); else if (ci->values[i].type == OCONFIG_TYPE_NUMBER) - status = - snprintf(buffer_ptr, buffer_free, " %lf", ci->values[i].value.number); + status = ssnprintf(buffer_ptr, buffer_free, " %lf", + ci->values[i].value.number); else if (ci->values[i].type == OCONFIG_TYPE_BOOLEAN) - status = snprintf(buffer_ptr, buffer_free, " %s", - ci->values[i].value.boolean ? "true" : "false"); + status = ssnprintf(buffer_ptr, buffer_free, " %s", + ci->values[i].value.boolean ? "true" : "false"); if ((status < 0) || (status >= buffer_free)) return -1; @@ -411,10 +411,12 @@ static int dispatch_block_plugin(oconfig_item_t *ci) { } /* Hm, no complex plugin found. Dispatch the values one by one */ - for (int i = 0; i < ci->children_num; i++) { - if (ci->children[i].children == NULL) - dispatch_value_plugin(name, ci->children + i); - else { + for (int i = 0, ret = 0; i < ci->children_num; i++) { + if (ci->children[i].children == NULL) { + ret = dispatch_value_plugin(name, ci->children + i); + if (ret != 0) + return ret; + } else { WARNING("There is a `%s' block within the " "configuration for the %s plugin. " "The plugin either only expects " @@ -664,7 +666,7 @@ static oconfig_item_t *cf_read_dir(const char *dir, const char *pattern, if ((de->d_name[0] == '.') || (de->d_name[0] == 0)) continue; - status = snprintf(name, sizeof(name), "%s/%s", dir, de->d_name); + status = ssnprintf(name, sizeof(name), "%s/%s", dir, de->d_name); if ((status < 0) || ((size_t)status >= sizeof(name))) { ERROR("configfile: Not including `%s/%s' because its" " name is too long.", @@ -1233,7 +1235,7 @@ int cf_util_get_service(const oconfig_item_t *ci, char **ret_string) /* {{{ */ P_ERROR("cf_util_get_service: Out of memory."); return -1; } - snprintf(service, 6, "%i", port); + ssnprintf(service, 6, "%i", port); sfree(*ret_string); *ret_string = service;