Hi
Running the following Ex command causes an internal error
in Vim-8.0.123 and older:
:call assert_inrange(1, 1)
E685: Internal error: get_tv_number(UNKNOWN)
Function assert_inrange() should have 3 or 4 arguments,
but passing 2 arguments should not cause an internal error.
Bug was found using afl-fuzz and vim compiled with -DABORT_ON_INTERNAL_ERROR.
Attached patch fixes it.
Regards
Dominique
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 6721173..08be12b 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -471,7 +471,7 @@ static struct fst
{"assert_exception", 1, 2, f_assert_exception},
{"assert_fails", 1, 2, f_assert_fails},
{"assert_false", 1, 2, f_assert_false},
- {"assert_inrange", 2, 3, f_assert_inrange},
+ {"assert_inrange", 3, 4, f_assert_inrange},
{"assert_match", 2, 3, f_assert_match},
{"assert_notequal", 2, 3, f_assert_notequal},
{"assert_notmatch", 2, 3, f_assert_notmatch},