Johan Herland <johan@xxxxxxxxxxx> writes: > Signed-off-by: Johan Herland <johan@xxxxxxxxxxx> How does url end up to be NULL? At the beginning of transport_get(), you do this: ret->remote = remote; if (!url && remote && remote->url) url = remote->url[0]; ret->url = url; if (remote && remote->foreign_vcs) { transport_helper_init(ret); return ret; } and the case where remote.$name.vcs is defined, we do not need remote.$name.url. When (!url && remote && remote->url), is remote->url[0] allowed to be NULL? I am guessing it would be a bug in whoever prepared the remote, and if that is indeed the case, the patch shifts the symptoms without fixing the cause. When (remote && remote->foreign_vcs) does not hold, iow, if no remote is defined or the remote is defined but lacks remote.$name.url, you will go to the last else clause in the function that sets up a git_transport_data for the native transport, but it has ret->url == NULL. Whom does that transport talk with? Is such a transport of any use, or does it cause a segfault downstream in the call chain? In other words, I am wondering if this patch should just diagnose the case as an error, instead of pretending all is well. -- 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