Fix crash on :echo get_all_options_info()

Iterating over PARAM_COUNT is wrong as PARAM_COUNT also counts the last
element of the options array, which has a NULL fullname in order to
signal the end of the array.
This commit is contained in:
glacambre 2021-05-25 07:06:50 +02:00
parent 75992f2ad9
commit 0c8454f5bc
2 changed files with 5 additions and 1 deletions

View File

@ -7700,7 +7700,7 @@ Dictionary get_vimoption(String name, Error *err)
Dictionary get_all_vimoptions(void)
{
Dictionary retval = ARRAY_DICT_INIT;
for (size_t i = 0; i < PARAM_COUNT; i++) {
for (size_t i = 0; options[i].fullname != NULL; i++) {
Dictionary opt_dict = vimoption2dict(&options[i]);
PUT(retval, options[i].fullname, DICTIONARY_OBJ(opt_dict));
}

View File

@ -1986,6 +1986,10 @@ describe('API', function()
eq(meths.get_option_info'winhighlight', options_info.winhighlight)
end)
it('should not crash when echoed', function()
meths.exec("echo nvim_get_all_options_info()", true)
end)
end)
describe('nvim_get_option_info', function()