summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVicent Martí <tanoku@gmail.com>2011-08-02 10:44:50 -0700
committerVicent Martí <tanoku@gmail.com>2011-08-02 10:44:50 -0700
commit03d88ed415a09faf161d8a081c18f51826be584a (patch)
treec3c9674387e747bcd4401ec2c5816241ca43f87e /src
parent80de9ae03c82b6c7f3d313edc1db72b81ad01916 (diff)
parent7d3ec3caac1ed10faecaf828b481b0f4958755c1 (diff)
downloadlibgit2-03d88ed415a09faf161d8a081c18f51826be584a.tar.gz
Merge pull request #346 from belkiss/development
Fix memory leak when wrong object type is looked up from cache
Diffstat (limited to 'src')
-rw-r--r--src/object.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/object.c b/src/object.c
index d14ca8566..8b07197f1 100644
--- a/src/object.c
+++ b/src/object.c
@@ -117,7 +117,10 @@ int git_object_lookup_prefix(git_object **object_out, git_repository *repo, cons
object = git_cache_get(&repo->objects, id);
if (object != NULL) {
if (type != GIT_OBJ_ANY && type != object->type)
+ {
+ git_object_close(object);
return git__throw(GIT_EINVALIDTYPE, "Failed to lookup object. The given type does not match the type on the ODB");
+ }
*object_out = object;
return GIT_SUCCESS;