Browse Source

clone: make sure we support the transport type

If we use an unsupported transport (e.g., http when curl
support is not compiled in), transport_get reports an error
to the user, but we still get a transport object. We need to
manually check and abort the clone process at that point, or
we end up with a segfault.

Noticed by Thomas Rast.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 17 years ago committed by Junio C Hamano
parent
commit
37b78c2547
  1. 3
      builtin-clone.c

3
builtin-clone.c

@ -449,6 +449,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix) @@ -449,6 +449,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
struct remote *remote = remote_get(argv[0]);
struct transport *transport = transport_get(remote, argv[0]);

if (!transport->get_refs_list || !transport->fetch)
die("Don't know how to clone %s", transport->url);

transport_set_option(transport, TRANS_OPT_KEEP, "yes");

if (option_depth)

Loading…
Cancel
Save