From 8aa3b2216002d9f5fd5ee3f677049b62cde264b0 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Wed, 30 Nov 2022 00:24:26 +0000 Subject: [PATCH] settings: Update int fallback check for settings with cfg_vals This atoi() was added long ago in commit d490f441, and it looks like it's intended to allow arbitrary values in table settings. These table settings have some symbolic values (eg. off, on) but are otherwise int-valued. As far as I can see the only settings that can take this branch are all table settings with F_ALLOW_ARBITRARY_VALS. It doesn't make a lot of sense to accept random integers without that flag, so make the atoi() conversion dependent on it. Change-Id: I7bb1bc4997601b73ad8dcbf2f3ddf434d16adf23 --- apps/settings.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/apps/settings.c b/apps/settings.c index c1664b625c..f166abd06f 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -361,13 +361,9 @@ bool settings_load_config(const char* file, bool apply) else *v = temp; } - else - { /* atoi breaks choice settings because they - * don't have int-like values, and would - * fall back to the first value (i.e. 0) - * due to atoi */ - if (setting->flags & F_CHOICE_SETTING) - *v = atoi(value); + else if (setting->flags & F_ALLOW_ARBITRARY_VALS) + { + *v = atoi(value); } } break;