]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ps/leakfixes-part-6'
authorJunio C Hamano <gitster@pobox.com>
Fri, 20 Sep 2024 18:16:30 +0000 (11:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Sep 2024 18:16:30 +0000 (11:16 -0700)
More leakfixes.

* ps/leakfixes-part-6: (22 commits)
  builtin/repack: fix leaking keep-pack list
  merge-ort: fix two leaks when handling directory rename modifications
  match-trees: fix leaking prefixes in `shift_tree()`
  builtin/fmt-merge-msg: fix leaking buffers
  builtin/grep: fix leaking object context
  builtin/pack-objects: plug leaking list of keep-packs
  builtin/repack: fix leaking line buffer when packing promisors
  negotiator/skipping: fix leaking commit entries
  shallow: fix leaking members of `struct shallow_info`
  shallow: free grafts when unregistering them
  object: clear grafts when clearing parsed object pool
  gpg-interface: fix misdesigned signing key interfaces
  send-pack: fix leaking push cert nonce
  remote: fix leak in reachability check of a remote-tracking ref
  remote: fix leaking tracking refs
  builtin/submodule--helper: fix leaking refs on push-check
  submodule: fix leaking fetch task data
  upload-pack: fix leaking child process data on reachability checks
  builtin/push: fix leaking refspec query result
  send-pack: fix leaking common object IDs
  ...

13 files changed:
1  2 
builtin/pack-objects.c
builtin/repack.c
builtin/submodule--helper.c
builtin/tag.c
commit.c
commit.h
fetch-pack.c
negotiator/skipping.c
remote.c
send-pack.c
t/t5616-partial-clone.sh
t/t6500-gc.sh
t/test-lib.sh

Simple merge
Simple merge
Simple merge
diff --cc builtin/tag.c
Simple merge
diff --cc commit.c
Simple merge
diff --cc commit.h
Simple merge
diff --cc fetch-pack.c
Simple merge
Simple merge
diff --cc remote.c
Simple merge
diff --cc send-pack.c
index 5d0c23772addb46480916fd0a0902b8f8c06ae6c,31a62e6a98c59788d190cab1a89d408727aa9de0..6677c44e8acd19f16706ad2d78f72fee889daa55
@@@ -623,12 -619,11 +627,11 @@@ int send_pack(struct send_pack_args *ar
                         * atomically, abort the whole operation.
                         */
                        if (use_atomic) {
-                               strbuf_release(&req_buf);
-                               strbuf_release(&cap_buf);
                                reject_atomic_push(remote_refs, args->send_mirror);
 -                              error("atomic push failed for ref %s. status: %d\n",
 +                              error("atomic push failed for ref %s. status: %d",
                                      ref->name, ref->status);
-                               return args->porcelain ? 0 : -1;
+                               ret = args->porcelain ? 0 : -1;
+                               goto out;
                        }
                        /* else fallthrough */
                default:
Simple merge
diff --cc t/t6500-gc.sh
Simple merge
diff --cc t/test-lib.sh
Simple merge