From: Daniel Barkalow Date: Sat, 09 Feb 2008 17:16:04 GMT Subject: Re: [PATCH] Fix "git clone" for git:// protocol Message-ID: In-Reply-To: On Sat, 9 Feb 2008, Johannes Schindelin wrote: > In the commit "Reduce the number of connects when fetching", we checked > the return value of git_connect() to see if the connection was successful. > > However, for the git:// protocol, there is no need to have another > process, so the return value is NULL. > > The thing is: git_connect() does not return at all if it fails, so we need > not check the return value of git_connect(). Huh. Sure enough. Actually, there's a similar problem in transport.c, where it assumes that the return value of git_connect is non-zero, which makes it not reuse the connection (not that you can really tell). It might be good to roll in a fix for that. Or maybe git_connect should return a pointer to a static struct child_process if it doesn't need a subprocess, just to distinguish "we're doing it ourselves" from "it's not being done"? If not, maybe the variables that store the return from git_connect should be renamed to "subproc" or something that doesn't suggest they can't be NULL if you're actually connected. -Daniel *This .sig left intentionally blank*