Reject invalid level specifications in /set.

Most of these have names that end in "_level".


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5021 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Jilles Tjoelker 2009-02-21 21:17:51 +00:00 committed by jilles
commit cb1f07352a
12 changed files with 26 additions and 12 deletions

View file

@ -134,7 +134,7 @@ int settings_get_level(const char *key)
const char *str;
str = settings_get_str_type(key, SETTING_TYPE_LEVEL);
return str == NULL ? 0 : level2bits(str);
return str == NULL ? 0 : level2bits(str, NULL);
}
int settings_get_size(const char *key)
@ -355,6 +355,12 @@ int settings_set_time(const char *key, const char *value)
int settings_set_level(const char *key, const char *value)
{
int iserror;
(void)level2bits(value, &iserror);
if (iserror)
return FALSE;
iconfig_node_set_str(settings_get_node(key), key, value);
return TRUE;
}