From: Johannes Sixt Date: Sun, 10 Feb 2008 20:00:26 GMT Subject: Re: [PATCH] daemon: Set up PATH properly on startup. Message-ID: <20080210200027.169BD5B0E7@dx.sixt.local> In-Reply-To: <1202555873-8099-1-git-send-email-mdw@distorted.org.uk> Mark Wooding wrote: > Since exec_cmd.c changed (511707d42b3b3e57d9623493092590546ffeae80) to > just use the PATH variable for finding Git binaries, the daemon has been > broken for people with picky inetds (such as the OpenBSD one) which > launder the environment on startup. The result is that the daemon > mysteriously fails to do anything useful. [...] > diff --git a/daemon.c b/daemon.c > index 41a60af..cfd6124 100644 > --- a/daemon.c > +++ b/daemon.c > @@ -1149,6 +1149,7 @@ int main(int argc, char **argv) > usage(daemon_usage); > } > > + setup_path(NULL); > if (inetd_mode && (group_name || user_name)) > die("--user and --group are incompatible with --inetd"); > There are 2 reason, *not* to do this: 1. It's not needed. You can use /usr/local/bin/git --exec-path=/usr/local/bin daemon --inetd ... to inject the exec-path. 2. Security. Those inetds launder the environment for a reason. Assume inetd sets PATH=/usr/bin:/bin and git-daemon is installed as /usr/sbin/git-daemon. With your patch now all hooks run with the path set to /usr/sbin:/usr/bin:/bin. -- Hannes