find_default_branch(): Free refmatch after usage
Fixes following memory leak seen with "PATH_INFO=/cgit/refs/":
    ==13408== 7 bytes in 1 blocks are definitely lost in loss record 4 of 52
    ==13408==    at 0x4C2C04B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==13408==    by 0x56F2DF1: strdup (in /usr/lib/libc-2.17.so)
    ==13408==    by 0x46CA78: xstrdup (wrapper.c:35)
    ==13408==    by 0x405840: find_current_ref (cgit.c:426)
    ==13408==    by 0x44BE5A: do_one_ref (refs.c:527)
    ==13408==    by 0x44D3E0: do_for_each_ref_in_dir (refs.c:553)
    ==13408==    by 0x44D85A: do_for_each_ref (refs.c:1298)
    ==13408==    by 0x405889: find_default_branch (cgit.c:438)
    ==13408==    by 0x405AC4: prepare_repo_cmd (cgit.c:490)
    ==13408==    by 0x405D97: process_request (cgit.c:557)
    ==13408==    by 0x407490: cache_process (cache.c:322)
    ==13408==    by 0x406C18: main (cgit.c:864)
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
			
			
这个提交包含在:
		
							
								
								
									
										8
									
								
								cgit.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								cgit.c
									
									
									
									
									
								
							| @@ -427,6 +427,12 @@ static int find_current_ref(const char *refname, const unsigned char *sha1, | ||||
| 	return info->match; | ||||
| } | ||||
|  | ||||
| static void free_refmatch_inner(struct refmatch *info) | ||||
| { | ||||
| 	if (info->first_ref) | ||||
| 		free(info->first_ref); | ||||
| } | ||||
|  | ||||
| static char *find_default_branch(struct cgit_repo *repo) | ||||
| { | ||||
| 	struct refmatch info; | ||||
| @@ -442,6 +448,8 @@ static char *find_default_branch(struct cgit_repo *repo) | ||||
| 		ref = info.first_ref; | ||||
| 	if (ref) | ||||
| 		ref = xstrdup(ref); | ||||
| 	free_refmatch_inner(&info); | ||||
|  | ||||
| 	return ref; | ||||
| } | ||||
|  | ||||
|   | ||||
		在新工单中引用
	
	屏蔽一个用户
	 Lukas Fleischer
					Lukas Fleischer