diff options
author | Evan Hanson <evhan@foldling.org> | 2013-08-15 16:25:48 +1200 |
---|---|---|
committer | Evan Hanson <evhan@foldling.org> | 2013-08-15 16:25:48 +1200 |
commit | 899ec41fa18a13db50ae3c3fd1c4bb4045364e6d (patch) | |
tree | 611a16da6c6e458ad609faeee5150d96db2d3497 /src/revparse.c | |
parent | 1e94df08dad9437164ac7727f23a51591b7c42f4 (diff) | |
download | libgit2-899ec41fa18a13db50ae3c3fd1c4bb4045364e6d.tar.gz |
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.c | 10 |
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 { |