From 1a08a3e2a584889f19b84a27672134649b73da58 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 26 Mar 2023 21:27:24 +0100 Subject: patch 9.0.1429: invalid memory access when ending insert mode Problem: Invalid memory access when ending insert mode. Solution: Check if the insert_skip value is valid. --- src/edit.c | 6 +++--- src/version.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/edit.c b/src/edit.c index 84b6eef4b..c23b0a855 100644 --- a/src/edit.c +++ b/src/edit.c @@ -2438,12 +2438,12 @@ stop_insert( * otherwise CTRL-O w and then will clear "last_insert". */ ptr = get_inserted(); - if (did_restart_edit == 0 || (ptr != NULL - && (int)STRLEN(ptr) > new_insert_skip)) + int added = ptr == NULL ? 0 : (int)STRLEN(ptr) - new_insert_skip; + if (did_restart_edit == 0 || added > 0) { vim_free(last_insert); last_insert = ptr; - last_insert_skip = new_insert_skip; + last_insert_skip = added < 0 ? 0 : new_insert_skip; } else vim_free(ptr); diff --git a/src/version.c b/src/version.c index f25f59fc8..23e69b343 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1429, /**/ 1428, /**/ -- cgit v1.2.1