git/builtin
Rubén Justo 2f64da0790 checkout: plug some leaks in git-restore
In git-restore we need to free the pathspec and pathspec_from_file
values from the struct checkout_opts.

A simple fix could be to free them in cmd_restore, after the call to
checkout_main returns, like we are doing [1][2] in the sibling function
cmd_checkout.

However, we can do even better.

We have git-switch and git-restore, both of them spin-offs[3][4] of
git-checkout.  All three are implemented as thin wrappers around
checkout_main.  Considering this, it makes a lot of sense to do the
cleanup closer to checkout_main.

Move the cleanups, including the new_branch_info variable, to
checkout_main.

As a consequence, mark: t2070, t2071, t2072 and t6418 as leak-free.

 [1] 9081a421a6 (checkout: fix "branch info" memory leaks, 2021-11-16)

 [2] 7ce4088ab7 (parse-options: consistently allocate memory in
     fix_filename(), 2023-03-04)

 [3] d787d311db (checkout: split part of it to new command 'switch',
     2019-03-29)

 [4] 46e91b663b (checkout: split part of it to new command 'restore',
     2019-04-25)

Signed-off-by: Rubén Justo <rjusto@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-03-14 11:58:04 -07:00
..
add.c
am.c
annotate.c
apply.c
archive.c
bisect.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
blame.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
branch.c
bugreport.c
bundle.c
cat-file.c Merge branch 'js/check-null-from-read-object-file' 2024-02-14 15:36:06 -08:00
check-attr.c
check-ignore.c
check-mailmap.c
check-ref-format.c
checkout--worker.c
checkout-index.c
checkout.c checkout: plug some leaks in git-restore 2024-03-14 11:58:04 -07:00
clean.c
clone.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
column.c Merge branch 'rs/column-leakfix' into maint-2.43 2024-02-08 16:22:06 -08:00
commit-graph.c Merge branch 'ja/doc-placeholders-fix' 2024-02-08 13:20:34 -08:00
commit-tree.c
commit.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
config.c config: add back code comment 2024-01-29 10:27:53 -08:00
count-objects.c
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
describe.c
diagnose.c
diff-files.c
diff-index.c
diff-tree.c
diff.c
difftool.c
fast-export.c
fast-import.c
fetch-pack.c
fetch.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
fmt-merge-msg.c
for-each-ref.c
for-each-repo.c
fsck.c
fsmonitor--daemon.c
gc.c
get-tar-commit-id.c
grep.c Merge branch 'js/check-null-from-read-object-file' 2024-02-14 15:36:06 -08:00
hash-object.c
help.c
hook.c
index-pack.c Merge branch 'jk/index-pack-lsan-false-positive-fix' into maint-2.43 2024-02-08 16:22:12 -08:00
init-db.c
interpret-trailers.c
log.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
ls-files.c
ls-remote.c
ls-tree.c
mailinfo.c
mailsplit.c
merge-base.c
merge-file.c
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
merge.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
mktag.c
mktree.c
multi-pack-index.c
mv.c
name-rev.c
notes.c Merge branch 'js/check-null-from-read-object-file' 2024-02-14 15:36:06 -08:00
pack-objects.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
pack-redundant.c
pack-refs.c
patch-id.c
prune-packed.c
prune.c
pull.c
push.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
range-diff.c
read-tree.c
rebase.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
receive-pack.c receive-pack: use find_commit_header() in check_nonce() 2024-02-12 09:22:20 -08:00
reflog.c Merge branch 'jb/reflog-expire-delete-dry-run-options' into maint-2.43 2024-02-08 16:22:05 -08:00
remote-ext.c
remote-fd.c
remote.c
repack.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
replace.c
replay.c
rerere.c
reset.c
rev-list.c
rev-parse.c
revert.c
rm.c
send-pack.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
shortlog.c
show-branch.c
show-index.c
show-ref.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
sparse-checkout.c Merge branch 'en/header-cleanup' into maint-2.43 2024-02-08 16:22:10 -08:00
stash.c Merge branch 'ps/report-failure-from-git-stash' 2024-02-12 13:16:11 -08:00
stripspace.c
submodule--helper.c
symbolic-ref.c
tag.c Merge branch 'jc/sign-buffer-failure-propagation-fix' 2024-02-12 13:16:11 -08:00
unpack-file.c
unpack-objects.c
update-index.c
update-ref.c
update-server-info.c
upload-archive.c
upload-pack.c
var.c
verify-commit.c
verify-pack.c
verify-tag.c
worktree.c Merge branch 'jc/orphan-unborn' into maint-2.43 2024-02-08 16:22:10 -08:00
write-tree.c