mirror of
https://github.com/git/git
synced 2024-08-28 20:20:07 +00:00
Merge branch 'rj/leakfixes'
Leakfixes * rj/leakfixes: tests: mark as passing with SANITIZE=leak config: fix a leak in git_config_copy_or_rename_section_in_file branch: fix a leak in cmd_branch branch: fix a leak in setup_tracking rev-parse: fix a leak with --abbrev-ref branch: fix a leak in setup_tracking branch: fix a leak in check_tracking_branch branch: fix a leak in inherit_tracking branch: fix a leak in dwim_and_setup_tracking remote: fix a leak in query_matches_negative_refspec config: fix a leak in git_config_copy_or_rename_section_in_file
This commit is contained in:
commit
4e4fc50cf7
14
branch.c
14
branch.c
|
@ -37,7 +37,7 @@ static int find_tracked_branch(struct remote *remote, void *priv)
|
|||
if (!remote_find_tracking(remote, &tracking->spec)) {
|
||||
switch (++tracking->matches) {
|
||||
case 1:
|
||||
string_list_append(tracking->srcs, tracking->spec.src);
|
||||
string_list_append_nodup(tracking->srcs, tracking->spec.src);
|
||||
tracking->remote = remote->name;
|
||||
break;
|
||||
case 2:
|
||||
|
@ -233,7 +233,7 @@ static int inherit_tracking(struct tracking *tracking, const char *orig_ref)
|
|||
return -1;
|
||||
}
|
||||
|
||||
tracking->remote = xstrdup(branch->remote_name);
|
||||
tracking->remote = branch->remote_name;
|
||||
for (i = 0; i < branch->merge_nr; i++)
|
||||
string_list_append(tracking->srcs, branch->merge_name[i]);
|
||||
return 0;
|
||||
|
@ -333,7 +333,7 @@ static void setup_tracking(const char *new_ref, const char *orig_ref,
|
|||
if (!skip_prefix(tracking.srcs->items[0].string,
|
||||
"refs/heads/", &tracked_branch) ||
|
||||
strcmp(tracked_branch, new_ref))
|
||||
return;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (tracking.srcs->nr < 1)
|
||||
|
@ -480,9 +480,12 @@ static int check_tracking_branch(struct remote *remote, void *cb_data)
|
|||
{
|
||||
char *tracking_branch = cb_data;
|
||||
struct refspec_item query;
|
||||
int res;
|
||||
memset(&query, 0, sizeof(struct refspec_item));
|
||||
query.dst = tracking_branch;
|
||||
return !remote_find_tracking(remote, &query);
|
||||
res = !remote_find_tracking(remote, &query);
|
||||
free(query.src);
|
||||
return res;
|
||||
}
|
||||
|
||||
static int validate_remote_tracking_branch(char *ref)
|
||||
|
@ -638,9 +641,10 @@ void dwim_and_setup_tracking(struct repository *r, const char *new_ref,
|
|||
const char *orig_ref, enum branch_track track,
|
||||
int quiet)
|
||||
{
|
||||
char *real_orig_ref;
|
||||
char *real_orig_ref = NULL;
|
||||
dwim_branch_start(r, orig_ref, track, &real_orig_ref, NULL);
|
||||
setup_tracking(new_ref, real_orig_ref, track, quiet);
|
||||
free(real_orig_ref);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -832,6 +832,8 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
|||
if (list)
|
||||
setup_auto_pager("branch", 1);
|
||||
|
||||
UNLEAK(sorting_options);
|
||||
|
||||
if (delete) {
|
||||
if (!argc)
|
||||
die(_("branch name required"));
|
||||
|
|
|
@ -156,9 +156,12 @@ static void show_rev(int type, const struct object_id *oid, const char *name)
|
|||
*/
|
||||
break;
|
||||
case 1: /* happy */
|
||||
if (abbrev_ref)
|
||||
if (abbrev_ref) {
|
||||
char *old = full;
|
||||
full = shorten_unambiguous_ref(full,
|
||||
abbrev_ref_strict);
|
||||
free(old);
|
||||
}
|
||||
show_with_type(type, full);
|
||||
break;
|
||||
default: /* ambiguous */
|
||||
|
|
2
config.c
2
config.c
|
@ -3841,6 +3841,7 @@ static int git_config_copy_or_rename_section_in_file(const char *config_filename
|
|||
output[0] = '\t';
|
||||
}
|
||||
} else {
|
||||
strbuf_release(©str);
|
||||
copystr = store_create_section(new_name, &store);
|
||||
}
|
||||
}
|
||||
|
@ -3887,6 +3888,7 @@ static int git_config_copy_or_rename_section_in_file(const char *config_filename
|
|||
free(filename_buf);
|
||||
config_store_data_clear(&store);
|
||||
strbuf_release(&buf);
|
||||
strbuf_release(©str);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
2
remote.c
2
remote.c
|
@ -890,7 +890,7 @@ static int query_matches_negative_refspec(struct refspec *rs, struct refspec_ite
|
|||
{
|
||||
int i, matched_negative = 0;
|
||||
int find_src = !query->src;
|
||||
struct string_list reversed = STRING_LIST_INIT_NODUP;
|
||||
struct string_list reversed = STRING_LIST_INIT_DUP;
|
||||
const char *needle = find_src ? query->dst : query->src;
|
||||
|
||||
/*
|
||||
|
|
|
@ -5,6 +5,7 @@ test_description='test <branch>@{upstream} syntax'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ test_description='test various @{X} syntax combinations together'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
check() {
|
||||
|
|
|
@ -4,6 +4,7 @@ test_description='test <branch>@{push} syntax'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
resolve () {
|
||||
|
|
|
@ -5,6 +5,7 @@ test_description='tests for git branch --track'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'setup' '
|
||||
|
|
|
@ -8,6 +8,7 @@ test_description='git branch assorted tests'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-rebase.sh
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ This script aims to check the behavior of those corner cases.
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
expect_branch() {
|
||||
|
|
|
@ -5,6 +5,7 @@ test_description='tracking branch update checks for git push'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'setup' '
|
||||
|
|
|
@ -5,6 +5,7 @@ test_description='pushing to a mirror repository'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
D=$(pwd)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
test_description='tagopt variable affects "git fetch" and is overridden by commandline.'
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
setup_clone () {
|
||||
|
|
|
@ -5,6 +5,7 @@ test_description='remote tracking stats'
|
|||
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
||||
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
|
||||
advance () {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
test_description='git status'
|
||||
|
||||
TEST_PASSES_SANITIZE_LEAK=true
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-terminal.sh
|
||||
|
||||
|
|
Loading…
Reference in a new issue