From: Thomas Roessler Date: Wed, 2 Feb 2000 10:53:28 +0000 (+0000) Subject: Make the parsing of integers more X-Git-Tag: mutt-1-1-3-rel~21 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=340939eeea915afea6914b05f951a9bc42741801;p=mutt Make the parsing of integers more --- diff --git a/init.c b/init.c index f01ed33e..05e15407 100644 --- a/init.c +++ b/init.c @@ -1040,6 +1040,8 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) else if (DTYPE(MuttVars[idx].type) == DT_NUM) { short *ptr = (short *) MuttVars[idx].data; + int val; + char *t; if (query || *s->dptr != '=') { @@ -1051,7 +1053,16 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) s->dptr++; mutt_extract_token (tmp, s, 0); - *ptr = (short) atoi (tmp->data); + val = strtol (tmp->data, &t, 0); + + if (!*tmp->data || *t || (short) val != val) + { + snprintf (err->data, err->dsize, _("%s: invalid value"), tmp->data); + r = -1; + break; + } + else + *ptr = (short) val; /* these ones need a sanity check */ if (mutt_strcmp (MuttVars[idx].option, "history") == 0)