patch 7.4.1939
Problem: Memory access error when reading viminfo. (Dominique Pelle)
Solution: Correct index in jumplist when at the end.
diff --git a/src/mark.c b/src/mark.c
index 5e2ac55..72a9a92 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1525,6 +1525,9 @@
if (idx < 0 && curwin->w_jumplistlen < JUMPLISTSIZE)
/* insert as the oldest entry */
idx = 0;
+ else if (idx == 0 && curwin->w_jumplistlen == JUMPLISTSIZE)
+ /* no space to insert as the oldest entry */
+ idx = -1;
}
else if (curwin->w_jumplistlen < JUMPLISTSIZE)
/* insert as oldest entry */
@@ -1537,6 +1540,7 @@
if (curwin->w_jumplistlen == JUMPLISTSIZE)
{
/* Drop the oldest entry. */
+ --idx;
vim_free(curwin->w_jumplist[0].fname);
for (i = 0; i < idx; ++i)
curwin->w_jumplist[i] = curwin->w_jumplist[i + 1];