Merge branch 'jk/fetch-pack-fsck-wo-lock-pack' into maint-2.45

"git fetch-pack -k -k" without passing "--lock-pack" (which we
never do ourselves) did not work at all, which has been corrected.

* jk/fetch-pack-fsck-wo-lock-pack:
  fetch-pack: fix segfault when fscking without --lock-pack
This commit is contained in:
Junio C Hamano 2024-07-02 09:27:58 -07:00
commit 5cf6e9b022
2 changed files with 13 additions and 1 deletions

View file

@ -1036,8 +1036,10 @@ static int get_pack(struct fetch_pack_args *args,
if (!is_well_formed)
die(_("fetch-pack: invalid index-pack output"));
if (pack_lockfile)
if (pack_lockfiles && pack_lockfile)
string_list_append_nodup(pack_lockfiles, pack_lockfile);
else
free(pack_lockfile);
parse_gitmodules_oids(cmd.out, gitmodules_oids);
close(cmd.out);
}

View file

@ -993,6 +993,16 @@ test_expect_success 'ensure bogus fetch.negotiationAlgorithm yields error' '
fetch origin server_has both_have_2
'
test_expect_success 'fetch-pack with fsckObjects and keep-file does not segfault' '
rm -rf server client &&
test_create_repo server &&
test_commit -C server one &&
test_create_repo client &&
git -c fetch.fsckObjects=true \
-C client fetch-pack -k -k ../server HEAD
'
test_expect_success 'filtering by size' '
rm -rf server client &&
test_create_repo server &&