struct remote's url member is not a NULL terminated list. Instead, we have to check url_nr before accessing it. Noticed by Johannes Sixt. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- For your viewing pleasure, this is not a resend, but an amend. Feel free to squash with 4/6, or to bug me to do it. builtin-remote.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/builtin-remote.c b/builtin-remote.c index 142eb97..ea323e2 100644 --- a/builtin-remote.c +++ b/builtin-remote.c @@ -356,7 +356,8 @@ static int show_or_prune(int argc, const char **argv, int prune) states.remote = remote_get(*argv); if (!states.remote) return error("No such remote: %s", *argv); - transport = transport_get(NULL, states.remote->url[0]); + transport = transport_get(NULL, states.remote->url_nr > 0 ? + states.remote->url[0] : NULL); ref = transport_get_remote_refs(transport); read_branches(); @@ -391,7 +392,7 @@ static int show_or_prune(int argc, const char **argv, int prune) } printf("* remote %s\n URL: %s\n", *argv, - states.remote->url[0] ? + states.remote->url_nr > 0 ? states.remote->url[0] : "(no URL)"); for (i = 0; i < branch_list.nr; i++) { @@ -468,8 +469,9 @@ static int get_one_entry(struct remote *remote, void *priv) { struct path_list *list = priv; - path_list_append(remote->name, list)->util = (void *)remote->url[0]; - if (remote->url[0] && remote->url[1]) + path_list_append(remote->name, list)->util = remote->url_nr ? + (void *)remote->url[0] : NULL; + if (remote->url_nr > 1) warning ("Remote %s has more than one URL", remote->name); return 0; -- 1.5.3.7.2157.g9598e - 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