patch 8.2.5148: invalid memory access when using expression on command line
Problem: Invalid memory access when using an expression on the command line.
Solution: Make sure the position does not go negative.
diff --git a/src/ex_getln.c b/src/ex_getln.c
index af4dc19..b499aba 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1206,6 +1206,7 @@
{
int i;
int c;
+ int save_new_cmdpos = new_cmdpos;
#ifdef USE_ON_FLY_SCROLL
dont_scroll = TRUE; // disallow scrolling here
@@ -1224,8 +1225,6 @@
#ifdef FEAT_EVAL
/*
* Insert the result of an expression.
- * Need to save the current command line, to be able to enter
- * a new one...
*/
new_cmdpos = -1;
if (c == '=')
@@ -1266,6 +1265,8 @@
}
#endif
}
+ new_cmdpos = save_new_cmdpos;
+
// remove the double quote
redrawcmd();