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