promisor-remote: fix possible issue when no URL is advertised
In the 'KnownUrl' case, in should_accept_remote(), let's check that `remote_url` is not NULL before we use strcmp() to compare it with the local URL. This could avoid crashes if a server starts to not advertise any URL in the future. If `remote_url` is NULL, we should reject the URL. Let's also warn in this case because we warn otherwise when a remote is rejected to try to help diagnose things at the end of the function. And while we are checking that remote_url is not NULL and warning if it is, it makes sense to also help diagnose the case where remote_url is empty. Also while at it, let's spell "URL" with uppercase letters in all the warnings. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
b059339bb3
commit
caed258323
|
|
@ -409,10 +409,15 @@ static int should_accept_remote(enum accept_promisor accept,
|
|||
if (accept != ACCEPT_KNOWN_URL)
|
||||
BUG("Unhandled 'enum accept_promisor' value '%d'", accept);
|
||||
|
||||
if (!remote_url || !*remote_url) {
|
||||
warning(_("no or empty URL advertised for remote '%s'"), remote_name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(urls->v[i], remote_url))
|
||||
return 1;
|
||||
|
||||
warning(_("known remote named '%s' but with url '%s' instead of '%s'"),
|
||||
warning(_("known remote named '%s' but with URL '%s' instead of '%s'"),
|
||||
remote_name, urls->v[i], remote_url);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue