Mercurial > vim
comparison src/ex_getln.c @ 9287:af25a1a875db v7.4.1926
commit https://github.com/vim/vim/commit/a890f5e34887bff7616bdb4b9ee0bf98c8d2a8f0
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jun 12 23:03:19 2016 +0200
patch 7.4.1926
Problem: Possible crash with many history items.
Solution: Avoid the index going past the last item.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 12 Jun 2016 23:15:07 +0200 |
parents | f5d9eb512f8b |
children | c3805fb080a6 |
comparison
equal
deleted
inserted
replaced
9286:64035abb986b | 9287:af25a1a875db |
---|---|
6446 new_hist[i].hisnum = ++hisnum[type]; | 6446 new_hist[i].hisnum = ++hisnum[type]; |
6447 } | 6447 } |
6448 else | 6448 else |
6449 clear_hist_entry(&new_hist[i]); | 6449 clear_hist_entry(&new_hist[i]); |
6450 } | 6450 } |
6451 hisidx[type] = len - 1; | 6451 hisidx[type] = (i < len ? i : len) - 1; |
6452 | 6452 |
6453 /* Free what is not kept. */ | 6453 /* Free what is not kept. */ |
6454 for (i = 0; i < viminfo_hisidx[type]; i++) | 6454 for (i = 0; i < viminfo_hisidx[type]; i++) |
6455 vim_free(viminfo_history[type][i].hisstr); | 6455 vim_free(viminfo_history[type][i].hisstr); |
6456 for (i = 0; i < hislen; i++) | 6456 for (i = 0; i < hislen; i++) |