diff options
-rw-r--r-- | apps/settings_list.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c index 27726dd391..2f452e6218 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -429,6 +429,8 @@ static int find_setting_by_name(char*name) | |||
429 | { | 429 | { |
430 | int i = 0; | 430 | int i = 0; |
431 | const struct settings_list *setting; | 431 | const struct settings_list *setting; |
432 | if (!strcmp(name, "-")) | ||
433 | return -1; | ||
432 | while (i<nb_settings) | 434 | while (i<nb_settings) |
433 | { | 435 | { |
434 | setting = &settings[i]; | 436 | setting = &settings[i]; |
@@ -446,7 +448,13 @@ static void qs_load_from_cfg(void* var, char*value) | |||
446 | } | 448 | } |
447 | static char* qs_write_to_cfg(void* setting, char*buf, int buf_len) | 449 | static char* qs_write_to_cfg(void* setting, char*buf, int buf_len) |
448 | { | 450 | { |
449 | const struct settings_list *var = &settings[*(int*)setting]; | 451 | int index = *(int*)setting; |
452 | if (index < 0 || index >= nb_settings - 1) | ||
453 | { | ||
454 | strlcpy(buf, "-", buf_len); | ||
455 | return buf; | ||
456 | } | ||
457 | const struct settings_list *var = &settings[index]; | ||
450 | strlcpy(buf, var->cfg_name, buf_len); | 458 | strlcpy(buf, var->cfg_name, buf_len); |
451 | return buf; | 459 | return buf; |
452 | } | 460 | } |