Blame SOURCES/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch

b6500d
diff -up vim80/src/screen.c.cve3872 vim80/src/screen.c
b6500d
--- vim80/src/screen.c.cve3872	2021-10-21 13:20:27.694921335 +0200
b6500d
+++ vim80/src/screen.c	2021-10-21 13:22:42.221732996 +0200
b6500d
@@ -6911,13 +6911,13 @@ win_redr_status(win_T *wp)
b6500d
 	    *(p + len++) = ' ';
b6500d
 	if (bt_help(wp->w_buffer))
b6500d
 	{
b6500d
-	    STRCPY(p + len, _("[Help]"));
b6500d
+	    vim_snprintf((char *)p + len, MAXPATHL - len, "%s", _("[Help]"));
b6500d
 	    len += (int)STRLEN(p + len);
b6500d
 	}
b6500d
 #ifdef FEAT_QUICKFIX
b6500d
 	if (wp->w_p_pvw)
b6500d
 	{
b6500d
-	    STRCPY(p + len, _("[Preview]"));
b6500d
+	    vim_snprintf((char *)p + len, MAXPATHL - len, "%s", _("[Preview]"));
b6500d
 	    len += (int)STRLEN(p + len);
b6500d
 	}
b6500d
 #endif
b6500d
@@ -6927,12 +6927,12 @@ win_redr_status(win_T *wp)
b6500d
 #endif
b6500d
 		)
b6500d
 	{
b6500d
-	    STRCPY(p + len, "[+]");
b6500d
-	    len += 3;
b6500d
+	    vim_snprintf((char *)p + len, MAXPATHL - len, "%s", "[+]");
b6500d
+	    len += (int)STRLEN(p + len);
b6500d
 	}
b6500d
 	if (wp->w_buffer->b_p_ro)
b6500d
 	{
b6500d
-	    STRCPY(p + len, _("[RO]"));
b6500d
+	    vim_snprintf((char *)p + len, MAXPATHL - len, "%s", _("[RO]"));
b6500d
 	    len += (int)STRLEN(p + len);
b6500d
 	}
b6500d