summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhost@microsoft.com>2015-06-29 17:32:22 -0400
committerJeff Hostetler <jeffhost@microsoft.com>2015-06-30 09:41:17 -0400
commit64e6b5b0350f1c080a3c1e2753fa14a682270ed8 (patch)
tree27e53ca3184ecfc3c76bbb594b38b3ebc6d8b3fa
parent4a0313bc4e9b20a55aa6d0922312f97df743df72 (diff)
downloadlibgit2-64e6b5b0350f1c080a3c1e2753fa14a682270ed8.tar.gz
fix memory leak in refspec.c on errors.
-rw-r--r--src/refspec.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/refspec.c b/src/refspec.c
index 961f939c6..f92a6d2b6 100644
--- a/src/refspec.c
+++ b/src/refspec.c
@@ -142,6 +142,7 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
giterr_set(
GITERR_INVALID,
"'%s' is not a valid refspec.", input);
+ git_refspec__free(refspec);
return -1;
}
@@ -153,6 +154,8 @@ void git_refspec__free(git_refspec *refspec)
git__free(refspec->src);
git__free(refspec->dst);
git__free(refspec->string);
+
+ memset(refspec, 0x0, sizeof(git_refspec));
}
const char *git_refspec_src(const git_refspec *refspec)