revision: fix memory leak in prepare_show_merge()
In revision.c:prepare_show_merge(), we allocated an array in prune but forget to free it. Since parse_pathspec is not responsible to free prune, we should add `free(prune)` in the end of prepare_show_merge(). Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
d50a5e8939
commit
a3d278bb64
@@ -2068,6 +2068,7 @@ static void prepare_show_merge(struct rev_info *revs)
|
|||||||
parse_pathspec(&revs->prune_data, PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
|
parse_pathspec(&revs->prune_data, PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
|
||||||
PATHSPEC_PREFER_FULL | PATHSPEC_LITERAL_PATH, "", prune);
|
PATHSPEC_PREFER_FULL | PATHSPEC_LITERAL_PATH, "", prune);
|
||||||
revs->limited = 1;
|
revs->limited = 1;
|
||||||
|
free(prune);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dotdot_missing(const char *arg, char *dotdot,
|
static int dotdot_missing(const char *arg, char *dotdot,
|
||||||
|
|||||||
@@ -167,4 +167,28 @@ test_expect_success 'show --graph is forbidden' '
|
|||||||
test_must_fail git show --graph HEAD
|
test_must_fail git show --graph HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'show unmerged index' '
|
||||||
|
git reset --hard &&
|
||||||
|
|
||||||
|
git switch -C base &&
|
||||||
|
echo "base" >conflicting &&
|
||||||
|
git add conflicting &&
|
||||||
|
git commit -m "base" &&
|
||||||
|
|
||||||
|
git branch hello &&
|
||||||
|
git branch goodbye &&
|
||||||
|
|
||||||
|
git switch hello &&
|
||||||
|
echo "hello" >conflicting &&
|
||||||
|
git commit -am "hello" &&
|
||||||
|
|
||||||
|
git switch goodbye &&
|
||||||
|
echo "goodbye" >conflicting &&
|
||||||
|
git commit -am "goodbye" &&
|
||||||
|
|
||||||
|
git switch hello &&
|
||||||
|
test_must_fail git merge goodbye &&
|
||||||
|
git show --merge HEAD
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|||||||
Reference in New Issue
Block a user