diff src/os_unix.c @ 15306:7fff2d18e191 v8.1.0661

patch 8.1.0661: clipboard regexp might be used recursively commit https://github.com/vim/vim/commit/a8bfa1727a370d659dc0ccc3f0fd1763b10b5457 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Dec 29 22:28:46 2018 +0100 patch 8.1.0661: clipboard regexp might be used recursively Problem: Clipboard regexp might be used recursively. Solution: Check for recursive use and bail out.
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Dec 2018 22:30:05 +0100
parents 4aea6c2f56a8
children 55ccc2d353bd
line wrap: on
line diff
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1688,9 +1688,15 @@ x_connect_to_server(void)
     if (x_no_connect)
 	return FALSE;
 
-    /* Check for a match with "exclude:" from 'clipboard'. */
+    // Check for a match with "exclude:" from 'clipboard'.
     if (clip_exclude_prog != NULL)
     {
+	// Just in case we get called recursively, return FALSE.  This could
+	// happen if vpeekc() is used while executing the prog and it causes a
+	// related callback to be invoked.
+	if (regprog_in_use(clip_exclude_prog))
+	    return FALSE;
+
 	if (vim_regexec_prog(&clip_exclude_prog, FALSE, T_NAME, (colnr_T)0))
 	    return FALSE;
     }