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.
diff --git a/src/edit.c b/src/edit.c
index 84b6eef..c23b0a8 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -2438,12 +2438,12 @@
      * otherwise CTRL-O w and then <Left> 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);