Merge branch 'aa/reap-transport-child-processes'

A few code paths that spawned child processes for network
connection weren't wait(2)ing for their children and letting "init"
reap them instead; they have been tightened.

* aa/reap-transport-child-processes:
  transport-helper, connect: use clean_on_exit to reap children on abnormal exit
maint
Junio C Hamano 2026-04-06 15:42:50 -07:00
commit 87972f3001
2 changed files with 6 additions and 0 deletions

View File

@ -1054,6 +1054,8 @@ static struct child_process *git_proxy_connect(int fd[2], char *host)
strvec_push(&proxy->args, port);
proxy->in = -1;
proxy->out = -1;
proxy->clean_on_exit = 1;
proxy->wait_after_clean = 1;
if (start_command(proxy))
die(_("cannot start proxy %s"), git_proxy_command);
fd[0] = proxy->out; /* read from proxy stdout */
@ -1515,6 +1517,8 @@ struct child_process *git_connect(int fd[2], const char *url,
}
strvec_push(&conn->args, cmd.buf);

conn->clean_on_exit = 1;
conn->wait_after_clean = 1;
if (start_command(conn))
die(_("unable to fork"));


View File

@ -154,6 +154,8 @@ static struct child_process *get_helper(struct transport *transport)

helper->trace2_child_class = helper->args.v[0]; /* "remote-<name>" */

helper->clean_on_exit = 1;
helper->wait_after_clean = 1;
code = start_command(helper);
if (code < 0 && errno == ENOENT)
die(_("unable to find remote helper for '%s'"), data->name);