mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 00:03:57 -04:00 
			
		
		
		
	When passing query strings to workers, pass the terminating \0.
Otherwise, when the query string is read, we might trailing garbage beyond the end, unless there happens to be a \0 there by good luck. Report and patch by Thomas Munro. Reviewed by Rafia Sabih. Discussion: http://postgr.es/m/CAEepm=2SJs7X+_vx8QoDu8d1SMEOxtLhxxLNzZun_BvNkuNhrw@mail.gmail.com
This commit is contained in:
		
							parent
							
								
									7d3583ad9a
								
							
						
					
					
						commit
						f94eec490b
					
				| @ -597,7 +597,7 @@ ExecInitParallelPlan(PlanState *planstate, EState *estate, | ||||
| 
 | ||||
| 	/* Estimate space for query text. */ | ||||
| 	query_len = strlen(estate->es_sourceText); | ||||
| 	shm_toc_estimate_chunk(&pcxt->estimator, query_len); | ||||
| 	shm_toc_estimate_chunk(&pcxt->estimator, query_len + 1); | ||||
| 	shm_toc_estimate_keys(&pcxt->estimator, 1); | ||||
| 
 | ||||
| 	/* Estimate space for serialized PlannedStmt. */ | ||||
| @ -672,8 +672,8 @@ ExecInitParallelPlan(PlanState *planstate, EState *estate, | ||||
| 	shm_toc_insert(pcxt->toc, PARALLEL_KEY_EXECUTOR_FIXED, fpes); | ||||
| 
 | ||||
| 	/* Store query string */ | ||||
| 	query_string = shm_toc_allocate(pcxt->toc, query_len); | ||||
| 	memcpy(query_string, estate->es_sourceText, query_len); | ||||
| 	query_string = shm_toc_allocate(pcxt->toc, query_len + 1); | ||||
| 	memcpy(query_string, estate->es_sourceText, query_len + 1); | ||||
| 	shm_toc_insert(pcxt->toc, PARALLEL_KEY_QUERY_TEXT, query_string); | ||||
| 
 | ||||
| 	/* Store serialized PlannedStmt. */ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user