From: Junio C Hamano Date: Thu, 11 Apr 2013 15:35:46 GMT Subject: Re: regression: "96b9e0e3 config: treat user and xdg config permission problems as errors" busted git-daemon Message-ID: <7vwqs9jd0t.fsf@alter.siamese.dyndns.org> In-Reply-To: <20130411054207.GE27795@sigill.intra.peff.net> Jeff King writes: > On Thu, Apr 11, 2013 at 05:39:43AM +0200, Mike Galbraith wrote: > >> > ALLOWED_ENV="PATH HOME" >> > HOME=/ >> >> I can work around it by changing the init script to use su - git -c "bla >> bla" to launch the thing, instead of using --user=git --group=daemon, >> but that's just a bandaid for the busted environment setup those >> switches were supposed to make happen, no? > > Yeah, I think the bug here is that git-daemon should be setting $HOME > when it switches privileges with --user. Does this patch fix it for you? > > diff --git a/daemon.c b/daemon.c > index 6aeddcb..a4451fd 100644 > --- a/daemon.c > +++ b/daemon.c > @@ -1091,6 +1091,7 @@ static void drop_privileges(struct credentials *cred) > if (cred && (initgroups(cred->pass->pw_name, cred->gid) || > setgid (cred->gid) || setuid(cred->pass->pw_uid))) > die("cannot drop privileges"); > + setenv("HOME", cred->pass->pw_dir, 1); > } > > static struct credentials *prepare_credentials(const char *user_name, Yeah, that sounds like the obvious fix to me.