Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Hanson <evhan@foldling.org>2013-08-15 08:25:48 +0400
committerEvan Hanson <evhan@foldling.org>2013-08-15 08:25:48 +0400
commit899ec41fa18a13db50ae3c3fd1c4bb4045364e6d (patch)
tree611a16da6c6e458ad609faeee5150d96db2d3497 /src/revparse.c
parent1e94df08dad9437164ac7727f23a51591b7c42f4 (diff)
revparse: Free left side of invalid range revspecs
This fixes a small memory leak in git_revparse where early returns on errors from git_revparse_single cause a free() on the (reallocated) left side of the revspec to be skipped.
Diffstat (limited to 'src/revparse.c')
-rw-r--r--src/revparse.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/revparse.c b/src/revparse.c
index d21f08b53..2fdad0049 100644
--- a/src/revparse.c
+++ b/src/revparse.c
@@ -912,13 +912,9 @@ int git_revparse(
rstr++;
}
- if ((error = git_revparse_single(&revspec->from, repo, lstr)) < 0) {
- return error;
- }
-
- if ((error = git_revparse_single(&revspec->to, repo, rstr)) < 0) {
- return error;
- }
+ error = git_revparse_single(&revspec->from, repo, lstr);
+ if (error == 0)
+ error = git_revparse_single(&revspec->to, repo, rstr);
git__free((void*)lstr);
} else {