Mercurial > vim
diff src/option.c @ 10831:e926c5a7f9bf v8.0.0305
patch 8.0.0305: invalid memory access when option has duplicate flag
commit https://github.com/vim/vim/commit/aaaf57d8a936efe420190c077e4a74041cc6c72e
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Feb 5 14:13:20 2017 +0100
patch 8.0.0305: invalid memory access when option has duplicate flag
Problem: Invalid memory access when option has duplicate flag.
Solution: Correct pointer computation. (Dominique Pelle, closes https://github.com/vim/vim/issues/1442)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 05 Feb 2017 14:15:04 +0100 |
parents | 4dea7c96fc82 |
children | 40939b171432 |
line wrap: on
line diff
--- a/src/option.c +++ b/src/option.c @@ -4954,7 +4954,7 @@ do_set( if (flags & P_FLAGLIST) { /* Remove flags that appear twice. */ - for (s = newval; *s; ++s) + for (s = newval; *s;) { /* if options have P_FLAGLIST and * P_ONECOMMA such as 'whichwrap' */ @@ -4966,7 +4966,7 @@ do_set( /* Remove the duplicated value and * the next comma. */ STRMOVE(s, s + 2); - s -= 2; + continue; } } else @@ -4975,9 +4975,10 @@ do_set( && vim_strchr(s + 1, *s) != NULL) { STRMOVE(s, s + 1); - --s; + continue; } } + ++s; } }