Commit 6c14d641234d74dcc8a9e09ce1a6d461b3c193e9

nulltoken 2010-12-09T20:55:54

Fixed a memory leak in git_repository_lookup() when provided git_otype is invalid.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
diff --git a/src/repository.c b/src/repository.c
index b28c4ac..f27f77c 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -620,8 +620,10 @@ int git_repository_lookup(git_object **object_out, git_repository *repo, const g
 	if (error < GIT_SUCCESS)
 		return error;
 
-	if (type != GIT_OBJ_ANY && type != obj_file.type)
+	if (type != GIT_OBJ_ANY && type != obj_file.type) {
+		git_rawobj_close(&obj_file);
 		return GIT_EINVALIDTYPE;
+	}
 
 	type = obj_file.type;