From c0df452c043bd32aab31a076eb37abbf1a85cb3f Mon Sep 17 00:00:00 2001 From: Felicity Tarnell Date: Sat, 8 Mar 2014 11:37:52 +0000 Subject: [PATCH] Provide error for invalid number in c_set(). --- commands.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/commands.c b/commands.c index 0cdfcf5..4dc1855 100644 --- a/commands.c +++ b/commands.c @@ -106,6 +106,7 @@ c_set(argc, argv) { variable_t *var; int val; +wchar_t *p = NULL; if (argc != 3) { cmderr(L"Usage: set "); @@ -143,7 +144,13 @@ int val; break; case VTYPE_INT: - *(int *)var->va_addr = wcstol(argv[2], NULL, 0); + val = wcstol(argv[2], &p, 0); + if (!*argv[2] || *p) { + cmderr(L"Invalid number \"%ls\"", argv[2]); + break; + } + + *(int *)var->va_addr = val; break; } }