]> granicus.if.org Git - neomutt/commitdiff
check retval of mutt_str_atoui()
authorRichard Russon <rich@flatcap.org>
Thu, 19 Sep 2019 23:25:28 +0000 (00:25 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 21 Sep 2019 17:11:16 +0000 (18:11 +0100)
color.c

diff --git a/color.c b/color.c
index b54178c9619825926b1c7fff22d20bc9656b12c3..d9a23289b186408886723a0ad9bc0433716d37e1 100644 (file)
--- a/color.c
+++ b/color.c
@@ -1133,10 +1133,15 @@ static enum CommandResult parse_color(struct Buffer *buf, struct Buffer *s,
 
     if (MoreArgs(s))
     {
-      struct Buffer temporary = mutt_buffer_make(0);
-      mutt_extract_token(&temporary, s, MUTT_TOKEN_NO_FLAGS);
-      mutt_str_atoui(temporary.data, &match);
-      FREE(&temporary.data);
+      struct Buffer tmp = mutt_buffer_make(0);
+      mutt_extract_token(&tmp, s, MUTT_TOKEN_NO_FLAGS);
+      if (mutt_str_atoui(tmp.data, &match) < 0)
+      {
+        mutt_buffer_printf(err, _("%s: invalid number: %s"), color ? "color" : "mono", tmp.data);
+        mutt_buffer_dealloc(&tmp);
+        return MUTT_CMD_WARNING;
+      }
+      mutt_buffer_dealloc(&tmp);
     }
 
     if (MoreArgs(s))