mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Cleanup: avoid memory leak
Coverity CID 208298 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									424e757094
								
							
						
					
					
						commit
						50571dfab3
					
				
					 1 changed files with 11 additions and 5 deletions
				
			
		|  | @ -1151,21 +1151,29 @@ static int create_new_commit(git_repository *repo, const char *remote, const cha | ||||||
| 	/* If the parent commit has the same tree ID, do not create a new commit */ | 	/* If the parent commit has the same tree ID, do not create a new commit */ | ||||||
| 	if (parent && git_oid_equal(tree_id, git_commit_tree_id((const git_commit *) parent))) { | 	if (parent && git_oid_equal(tree_id, git_commit_tree_id((const git_commit *) parent))) { | ||||||
| 		/* If the parent already came from the ref, the commit is already there */ | 		/* If the parent already came from the ref, the commit is already there */ | ||||||
| 		if (ref) | 		if (ref) { | ||||||
|  | 			git_signature_free(author); | ||||||
| 			return 0; | 			return 0; | ||||||
|  | 		} | ||||||
| 		/* Else we do want to create the new branch, but with the old commit */ | 		/* Else we do want to create the new branch, but with the old commit */ | ||||||
| 		commit = (git_commit *) parent; | 		commit = (git_commit *) parent; | ||||||
| 	} else { | 	} else { | ||||||
| 		struct membuffer commit_msg = { 0 }; | 		struct membuffer commit_msg = { 0 }; | ||||||
| 
 | 
 | ||||||
| 		create_commit_message(&commit_msg, create_empty); | 		create_commit_message(&commit_msg, create_empty); | ||||||
| 		if (git_commit_create_v(&commit_id, repo, NULL, author, author, NULL, mb_cstring(&commit_msg), tree, parent != NULL, parent)) | 		if (git_commit_create_v(&commit_id, repo, NULL, author, author, NULL, mb_cstring(&commit_msg), tree, parent != NULL, parent)) { | ||||||
|  | 			git_signature_free(author); | ||||||
| 			return report_error("Git commit create failed (%s)", strerror(errno)); | 			return report_error("Git commit create failed (%s)", strerror(errno)); | ||||||
|  | 		} | ||||||
| 		free_buffer(&commit_msg); | 		free_buffer(&commit_msg); | ||||||
| 
 | 
 | ||||||
| 		if (git_commit_lookup(&commit, repo, &commit_id)) | 		if (git_commit_lookup(&commit, repo, &commit_id)) { | ||||||
|  | 			git_signature_free(author); | ||||||
| 			return report_error("Could not look up newly created commit"); | 			return report_error("Could not look up newly created commit"); | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	git_signature_free(author); | ||||||
| 
 | 
 | ||||||
| 	if (!ref) { | 	if (!ref) { | ||||||
| 		if (git_branch_create(&ref, repo, branch, commit, 0)) | 		if (git_branch_create(&ref, repo, branch, commit, 0)) | ||||||
|  | @ -1198,8 +1206,6 @@ static int create_new_commit(git_repository *repo, const char *remote, const cha | ||||||
| 	if (! create_empty) | 	if (! create_empty) | ||||||
| 		set_git_id(&commit_id); | 		set_git_id(&commit_id); | ||||||
| 
 | 
 | ||||||
| 	git_signature_free(author); |  | ||||||
| 
 |  | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue