builtin/commit: fix leaking change data contents
While we free the worktree change data, we never free its contents. Fix this. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
		
				
					committed by
					
						
						Junio C Hamano
					
				
			
			
				
	
			
			
			
						parent
						
							3b373150c8
						
					
				
				
					commit
					d34b5cbf02
				
			@ -728,6 +728,13 @@ static void prepare_amend_commit(struct commit *commit, struct strbuf *sb,
 | 
			
		||||
	repo_unuse_commit_buffer(the_repository, commit, buffer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void change_data_free(void *util, const char *str UNUSED)
 | 
			
		||||
{
 | 
			
		||||
	struct wt_status_change_data *d = util;
 | 
			
		||||
	free(d->rename_source);
 | 
			
		||||
	free(d);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int prepare_to_commit(const char *index_file, const char *prefix,
 | 
			
		||||
			     struct commit *current_head,
 | 
			
		||||
			     struct wt_status *s,
 | 
			
		||||
@ -991,7 +998,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
 | 
			
		||||
		s->use_color = 0;
 | 
			
		||||
		committable = run_status(s->fp, index_file, prefix, 1, s);
 | 
			
		||||
		s->use_color = saved_color_setting;
 | 
			
		||||
		string_list_clear(&s->change, 1);
 | 
			
		||||
		string_list_clear_func(&s->change, change_data_free);
 | 
			
		||||
	} else {
 | 
			
		||||
		struct object_id oid;
 | 
			
		||||
		const char *parent = "HEAD";
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user