summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-04-20 10:33:28 +0200
committerBram Moolenaar <Bram@vim.org>2021-04-20 10:33:28 +0200
commit6d4c1c7ba816294408097d72717366a97781655d (patch)
treeb23e045a6da4e27a09dbb3c949c1df8e8b51e6f2
parent4f2df37a0d297a0f40ff15f8ce31285c7b529bcd (diff)
downloadvim-git-6d4c1c7ba816294408097d72717366a97781655d.tar.gz
patch 8.2.2787: MS-Windows: crash when using :echoconsolev8.2.2787
Problem: MS-Windows: crash when using :echoconsole. Solution: Do not write a NUL when it's already there.
-rw-r--r--src/os_win32.c6
-rw-r--r--src/version.c2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/os_win32.c b/src/os_win32.c
index 7c2051f7f..9b692ec0e 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -6411,7 +6411,9 @@ mch_write(
return;
# endif
- s[len] = NUL;
+ // Avoid writing to a string literal.
+ if (s[len] != NUL)
+ s[len] = NUL;
if (!term_console)
{
@@ -6433,7 +6435,7 @@ mch_write(
return;
}
- while((ch = s[++prefix]))
+ while ((ch = s[++prefix]))
if (ch <= 0x1e && !(ch != '\n' && ch != '\r' && ch != '\b'
&& ch != '\a' && ch != '\033'))
break;
diff --git a/src/version.c b/src/version.c
index 834196d83..54bf12761 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2787,
+/**/
2786,
/**/
2785,