mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	updated for version 7.3.785
Problem: Crash with specific use of search pattern. Solution: Initialize reg_buf to curbuf.
This commit is contained in:
		| @@ -3413,7 +3413,7 @@ static unsigned	reg_tofreelen; | |||||||
|  * reg_startpos		<invalid>		reg_mmatch->startpos |  * reg_startpos		<invalid>		reg_mmatch->startpos | ||||||
|  * reg_endpos		<invalid>		reg_mmatch->endpos |  * reg_endpos		<invalid>		reg_mmatch->endpos | ||||||
|  * reg_win		NULL			window in which to search |  * reg_win		NULL			window in which to search | ||||||
|  * reg_buf		<invalid>		buffer in which to search |  * reg_buf		curbuf			buffer in which to search | ||||||
|  * reg_firstlnum	<invalid>		first line in which to search |  * reg_firstlnum	<invalid>		first line in which to search | ||||||
|  * reg_maxline		0			last line nr |  * reg_maxline		0			last line nr | ||||||
|  * reg_line_lbr		FALSE or TRUE		FALSE |  * reg_line_lbr		FALSE or TRUE		FALSE | ||||||
| @@ -3571,6 +3571,7 @@ vim_regexec(rmp, line, col) | |||||||
|     reg_mmatch = NULL; |     reg_mmatch = NULL; | ||||||
|     reg_maxline = 0; |     reg_maxline = 0; | ||||||
|     reg_line_lbr = FALSE; |     reg_line_lbr = FALSE; | ||||||
|  |     reg_buf = curbuf; | ||||||
|     reg_win = NULL; |     reg_win = NULL; | ||||||
|     ireg_ic = rmp->rm_ic; |     ireg_ic = rmp->rm_ic; | ||||||
| #ifdef FEAT_MBYTE | #ifdef FEAT_MBYTE | ||||||
| @@ -3595,6 +3596,7 @@ vim_regexec_nl(rmp, line, col) | |||||||
|     reg_mmatch = NULL; |     reg_mmatch = NULL; | ||||||
|     reg_maxline = 0; |     reg_maxline = 0; | ||||||
|     reg_line_lbr = TRUE; |     reg_line_lbr = TRUE; | ||||||
|  |     reg_buf = curbuf; | ||||||
|     reg_win = NULL; |     reg_win = NULL; | ||||||
|     ireg_ic = rmp->rm_ic; |     ireg_ic = rmp->rm_ic; | ||||||
| #ifdef FEAT_MBYTE | #ifdef FEAT_MBYTE | ||||||
| @@ -4311,8 +4313,8 @@ regmatch(scan) | |||||||
| #endif | #endif | ||||||
| 	    else | 	    else | ||||||
| 	    { | 	    { | ||||||
| 		if (!vim_iswordc_buf(c, reg_buf) | 		if (!vim_iswordc_buf(c, reg_buf) || (reginput > regline | ||||||
| 			|| (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf))) | 				   && vim_iswordc_buf(reginput[-1], reg_buf))) | ||||||
| 		    status = RA_NOMATCH; | 		    status = RA_NOMATCH; | ||||||
| 	    } | 	    } | ||||||
| 	    break; | 	    break; | ||||||
| @@ -7135,6 +7137,7 @@ vim_regsub(rmp, source, dest, copy, magic, backslash) | |||||||
|     reg_match = rmp; |     reg_match = rmp; | ||||||
|     reg_mmatch = NULL; |     reg_mmatch = NULL; | ||||||
|     reg_maxline = 0; |     reg_maxline = 0; | ||||||
|  |     reg_buf = curbuf; | ||||||
|     return vim_regsub_both(source, dest, copy, magic, backslash); |     return vim_regsub_both(source, dest, copy, magic, backslash); | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -725,6 +725,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     785, | ||||||
| /**/ | /**/ | ||||||
|     784, |     784, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user