From 899ec41fa18a13db50ae3c3fd1c4bb4045364e6d Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Thu, 15 Aug 2013 16:25:48 +1200 Subject: [PATCH] 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. --- src/revparse.c | 10 +++------- 1 file 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 {