diff src/register.c @ 25917:79a5c8238a5d v8.2.3492

patch 8.2.3492: crash when pasting too many times Commit: https://github.com/vim/vim/commit/eeed1c7ae090c17f4df51cf97b2a9e4d8b4f4dc7 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Oct 10 12:35:17 2021 +0100 patch 8.2.3492: crash when pasting too many times Problem: Crash when pasting too many times. Solution: Limit the size to what fits in an int. (closes https://github.com/vim/vim/issues/8962)
author Bram Moolenaar <Bram@vim.org>
date Sun, 10 Oct 2021 13:45:04 +0200
parents 196f75cf6983
children b863efc63397
line wrap: on
line diff
--- a/src/register.c
+++ b/src/register.c
@@ -2011,8 +2011,15 @@ do_put(
 	    }
 
 	    do {
-		totlen = count * yanklen;
-		if (totlen > 0)
+		long multlen = count * yanklen;
+
+		totlen = multlen;
+		if (totlen != multlen)
+		{
+		    emsg(_(e_resulting_text_too_long));
+		    break;
+		}
+		else if (totlen > 0)
 		{
 		    oldp = ml_get(lnum);
 		    if (lnum > start_lnum)