Mercurial > vim
diff src/search.c @ 13223:e37327129859 v8.0.1486
patch 8.0.1486: accessing invalid memory with "it"
commit https://github.com/vim/vim/commit/82846a00ac0c135946c93c48c1657018a5c96b11
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Feb 9 18:09:54 2018 +0100
patch 8.0.1486: accessing invalid memory with "it"
Problem: Accessing invalid memory with "it". (Dominique Pelle)
Solution: Avoid going over the end of the line. (Christian Brabandt,
closes #2532)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 09 Feb 2018 18:15:04 +0100 |
parents | 891b821d3602 |
children | 1961162121c7 |
line wrap: on
line diff
--- a/src/search.c +++ b/src/search.c @@ -684,11 +684,11 @@ searchit( && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count && pos->col < MAXCOL - 2) { - ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col; - if (*ptr == NUL) + ptr = ml_get_buf(buf, pos->lnum, FALSE); + if ((int)STRLEN(ptr) < pos->col) start_char_len = 1; else - start_char_len = (*mb_ptr2len)(ptr); + start_char_len = (*mb_ptr2len)(ptr + pos->col); } #endif else