@cryptotaxi247 / netdata-1 / commits / 62796ac50

fixed crash at config_move()

Costa Tsaousis (ktsaou) committed Feb 24, 2017 at 23:09 UTC 62796ac50b1ae2807a187ac39855762fd3aefdc7
3 files changed +33 -32
src/appconfig.c
+2 -1
@@ -202,7 +202,7 @@ int appconfig_move(struct config *root, const char *section_old, const char *nam
202 debug(D_CONFIG, "request to rename config in section '%s', old name '%s', to section '%s', new name '%s'", section_old, name_old, section_new, name_new);
203
204 struct section *co_old = appconfig_section_find(root, section_old);
205 - if(!co_old) return -1;
205 + if(!co_old) return ret;
206
207 struct section *co_new = appconfig_section_find(root, section_new);
208 if(!co_new) co_new = appconfig_section_create(root, section_new);
@@ -235,6 +235,7 @@ int appconfig_move(struct config *root, const char *section_old, const char *nam
235 cv_old->name = strdupz(name_new);
236 cv_old->hash = simple_hash(cv_old->name);
237
238 + cv_new = cv_old;
239 cv_new->next = co_new->values;
240 co_new->values = cv_new;
241
src/main.c
+29 -28
@@ -77,13 +77,13 @@ void web_server_threading_selection(void) {
77 web_client_timeout = (int) config_get_number(CONFIG_SECTION_API, "disconnect idle clients after seconds", DEFAULT_DISCONNECT_IDLE_WEB_CLIENTS_AFTER_SECONDS);
78
79 respect_web_browser_do_not_track_policy = config_get_boolean(CONFIG_SECTION_API, "respect do not track policy", respect_web_browser_do_not_track_policy);
80 - web_x_frame_options = config_get(CONFIG_SECTION_API, "x-frame-options header", "");
80 + web_x_frame_options = config_get(CONFIG_SECTION_API, "x-frame-options response header", "");
81 if(!*web_x_frame_options) web_x_frame_options = NULL;
82
83 #ifdef NETDATA_WITH_ZLIB
84 - web_enable_gzip = config_get_boolean(CONFIG_SECTION_API, "gzip compression", web_enable_gzip);
84 + web_enable_gzip = config_get_boolean(CONFIG_SECTION_API, "enable gzip compression", web_enable_gzip);
85
86 - char *s = config_get(CONFIG_SECTION_API, "compression strategy", "default");
86 + char *s = config_get(CONFIG_SECTION_API, "gzip compression strategy", "default");
87 if(!strcmp(s, "default"))
88 web_gzip_strategy = Z_DEFAULT_STRATEGY;
89 else if(!strcmp(s, "filtered"))
@@ -99,7 +99,7 @@ void web_server_threading_selection(void) {
99 web_gzip_strategy = Z_DEFAULT_STRATEGY;
100 }
101
102 - web_gzip_level = (int)config_get_number(CONFIG_SECTION_API, "compression level", 3);
102 + web_gzip_level = (int)config_get_number(CONFIG_SECTION_API, "gzip compression level", 3);
103 if(web_gzip_level < 1) {
104 error("Invalid compression level %d. Valid levels are 1 (fastest) to 9 (best ratio). Proceeding with level 1 (fastest compression).", web_gzip_level);
105 web_gzip_level = 1;
@@ -366,41 +366,42 @@ static void backwards_compatible_config() {
366 web_server_mode = (mode)?WEB_SERVER_MODE_MULTI_THREADED:WEB_SERVER_MODE_SINGLE_THREADED;
367 }
368
369 - if(config_exists(CONFIG_SECTION_GLOBAL, "bind socket to IP") && !config_exists(CONFIG_SECTION_API, "bind to"))
370 - config_move(CONFIG_SECTION_GLOBAL, "bind socket to IP", CONFIG_SECTION_API, "bind to");
369 + // move [global] options to the [api] section
370 + config_move(CONFIG_SECTION_GLOBAL, "bind socket to IP",
371 + CONFIG_SECTION_API, "bind to");
372
372 - if(config_exists(CONFIG_SECTION_GLOBAL, "bind to") && !config_exists(CONFIG_SECTION_API, "bind to"))
373 - config_move(CONFIG_SECTION_GLOBAL, "bind to", CONFIG_SECTION_API, "bind to");
373 + config_move(CONFIG_SECTION_GLOBAL, "bind to",
374 + CONFIG_SECTION_API, "bind to");
375
375 - if(config_exists(CONFIG_SECTION_GLOBAL, "port") && !config_exists(CONFIG_SECTION_API, "default port"))
376 - config_move(CONFIG_SECTION_GLOBAL, "port", CONFIG_SECTION_API, "default port");
376 + config_move(CONFIG_SECTION_GLOBAL, "port",
377 + CONFIG_SECTION_API, "default port");
378
378 - if(config_exists(CONFIG_SECTION_GLOBAL, "default port") && !config_exists(CONFIG_SECTION_API, "default port"))
379 - config_move(CONFIG_SECTION_GLOBAL, "default port", CONFIG_SECTION_API, "default port");
379 + config_move(CONFIG_SECTION_GLOBAL, "default port",
380 + CONFIG_SECTION_API, "default port");
381
381 - if(config_exists(CONFIG_SECTION_GLOBAL, "disconnect idle clients after seconds") && !config_exists(CONFIG_SECTION_API, "disconnect idle clients after seconds"))
382 - config_move(CONFIG_SECTION_GLOBAL, "disconnect idle clients after seconds", CONFIG_SECTION_API, "disconnect idle clients after seconds");
382 + config_move(CONFIG_SECTION_GLOBAL, "disconnect idle clients after seconds",
383 + CONFIG_SECTION_API, "disconnect idle clients after seconds");
384
384 - if(config_exists(CONFIG_SECTION_GLOBAL, "respect web browser do not track policy") && !config_exists(CONFIG_SECTION_API, "respect do not track policy"))
385 - config_move(CONFIG_SECTION_GLOBAL, "respect web browser do not track policy", CONFIG_SECTION_API, "respect do not track policy");
385 + config_move(CONFIG_SECTION_GLOBAL, "respect web browser do not track policy",
386 + CONFIG_SECTION_API, "respect do not track policy");
387
387 - if(config_exists(CONFIG_SECTION_GLOBAL, "web x-frame-options header") && !config_exists(CONFIG_SECTION_API, "x-frame-options header"))
388 - config_move(CONFIG_SECTION_GLOBAL, "web x-frame-options header", CONFIG_SECTION_API, "x-frame-options header");
388 + config_move(CONFIG_SECTION_GLOBAL, "web x-frame-options header",
389 + CONFIG_SECTION_API, "x-frame-options response header");
390
390 - if(config_exists(CONFIG_SECTION_GLOBAL, "enable web responses gzip compression") && !config_exists(CONFIG_SECTION_API, "gzip compression"))
391 - config_move(CONFIG_SECTION_GLOBAL, "enable web responses gzip compression", CONFIG_SECTION_API, "gzip compression");
391 + config_move(CONFIG_SECTION_GLOBAL, "enable web responses gzip compression",
392 + CONFIG_SECTION_API, "enable gzip compression");
393
393 - if(config_exists(CONFIG_SECTION_GLOBAL, "web compression strategy") && !config_exists(CONFIG_SECTION_API, "compression strategy"))
394 - config_move(CONFIG_SECTION_GLOBAL, "web compression strategy", CONFIG_SECTION_API, "compression strategy");
394 + config_move(CONFIG_SECTION_GLOBAL, "web compression strategy",
395 + CONFIG_SECTION_API, "gzip compression strategy");
396
396 - if(config_exists(CONFIG_SECTION_GLOBAL, "web compression level") && !config_exists(CONFIG_SECTION_API, "compression level"))
397 - config_move(CONFIG_SECTION_GLOBAL, "web compression level", CONFIG_SECTION_API, "compression level");
397 + config_move(CONFIG_SECTION_GLOBAL, "web compression level",
398 + CONFIG_SECTION_API, "gzip compression level");
399
399 - if(config_exists(CONFIG_SECTION_GLOBAL, "web files owner") && !config_exists(CONFIG_SECTION_API, "web files owner"))
400 - config_move(CONFIG_SECTION_GLOBAL, "web files owner", CONFIG_SECTION_API, "web files owner");
400 + config_move(CONFIG_SECTION_GLOBAL, "web files owner",
401 + CONFIG_SECTION_API, "web files owner");
402
402 - if(config_exists(CONFIG_SECTION_GLOBAL, "web files group") && !config_exists(CONFIG_SECTION_API, "web files group"))
403 - config_move(CONFIG_SECTION_GLOBAL, "web files group", CONFIG_SECTION_API, "web files group");
403 + config_move(CONFIG_SECTION_GLOBAL, "web files group",
404 + CONFIG_SECTION_API, "web files group");
405 }
406
407 static void get_netdata_configured_variables() {
src/plugin_proc_diskspace.c
+2 -3
@@ -53,9 +53,8 @@ static inline void do_disk_space_stats(struct mountinfo *mi, int update_every) {
53 if(unlikely(!mount_points)) {
54 SIMPLE_PREFIX_MODE mode = SIMPLE_PATTERN_EXACT;
55
56 - if(config_exists("plugin:proc:/proc/diskstats", "exclude space metrics on paths") && !config_exists(CONFIG_SECTION_DISKSPACE, "exclude space metrics on paths")) {
57 - // the config exists in the old section
58 - config_move("plugin:proc:/proc/diskstats", "exclude space metrics on paths", CONFIG_SECTION_DISKSPACE, "exclude space metrics on paths");
56 + if(config_move("plugin:proc:/proc/diskstats", "exclude space metrics on paths", CONFIG_SECTION_DISKSPACE, "exclude space metrics on paths") != -1) {
57 + // old configuration, enable backwards compatibility
58 mode = SIMPLE_PATTERN_PREFIX;
59 }
60