@cryptotaxi247 / netdata-1 / commits / fb6def2ff

Fix memory leaks (#5604)

Vladimir Kobal committed Mar 13, 2019 at 18:18 UTC fb6def2fff1e1d333b94ee7ada25d610aee1708b
2 files changed +7 -5
collectors/plugins.d/plugins_d.c
+5 -3
@@ -101,11 +101,13 @@ static inline int quoted_strings_splitter(char *str, char **words, int max_words
101
102 inline int pluginsd_initialize_plugin_directories() {
103 char plugins_dirs[(FILENAME_MAX * 2) + 1];
104 - char *plugins_dir_list = NULL;
104 + static char *plugins_dir_list = NULL;
105
106 // Get the configuration entry
107 - snprintfz(plugins_dirs, FILENAME_MAX * 2, "\"%s\" \"%s/custom-plugins.d\"", PLUGINS_DIR, CONFIG_DIR);
108 - plugins_dir_list = strdupz(config_get(CONFIG_SECTION_GLOBAL, "plugins directory", plugins_dirs));
107 + if(likely(!plugins_dir_list)) {
108 + snprintfz(plugins_dirs, FILENAME_MAX * 2, "\"%s\" \"%s/custom-plugins.d\"", PLUGINS_DIR, CONFIG_DIR);
109 + plugins_dir_list = strdupz(config_get(CONFIG_SECTION_GLOBAL, "plugins directory", plugins_dirs));
110 + }
111
112 // Parse it and store it to plugin directories
113 return quoted_strings_splitter(plugins_dir_list, plugin_directories, PLUGINSD_MAX_DIRECTORIES, config_isspace);
collectors/proc.plugin/proc_stat.c
+2 -2
@@ -404,8 +404,8 @@ static int read_cpuidle_states(char *cpuidle_name_filename , char *cpuidle_time_
404 }
405 snprintfz(next_state_filename, FILENAME_MAX, cpuidle_name_filename, core, cc->cpuidle_state_len);
406
407 - cc->cpuidle_state = callocz(cc->cpuidle_state_len, sizeof(struct cpuidle_state));
408 - memset(cc->cpuidle_state, 0, sizeof(struct cpuidle_state) * cc->cpuidle_state_len);
407 + if(likely(cc->cpuidle_state_len))
408 + cc->cpuidle_state = callocz(cc->cpuidle_state_len, sizeof(struct cpuidle_state));
409
410 for(state = 0; state < cc->cpuidle_state_len; state++) {
411 char name_buf[50 + 1];