On Sun, 15 Jun 2008, Jeff King wrote: > [cc'ing Daniel for remote.c advice] > > On Sun, Jun 15, 2008 at 09:38:23PM +0200, Mike Hommey wrote: > > > I somehow managed to get a segfault by running this: > > > > git push origin non-existant-branch-name:non-existant-branch-name > > Hmm. The problem is the ref-guessing code. Given "git push foo:bar", > when we try to figure out what "bar" means we first try to find > refs/heads/bar or refs/heads/bar on the remote. But if that fails, we > are pushing a new item, so we try to use the same prefix as what "foo" > resolved to (e.g., if "foo" is a branch, we make it "refs/heads/bar"). > > So if "foo" doesn't resolve, we end up dereferencing NULL as part of our > guess. And the fix is obvious and the patch is below. > > But it kind of makes me wonder why we bother looking at the dst side of > the refspec at all, since the src has already failed. Is there a good > reason not to just bail from match_explicit when we can't resolve the > src? The only thing I can think of is that a user might have made some mistake that would be more obvious with the error messages about both sides. Aside from that, it doesn't seem to have any possible effects anyway. -Daniel *This .sig left intentionally blank* -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html