diff options
author | Jeff King <peff@peff.net> | 2016-01-12 04:57:34 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-01-12 11:11:52 -0800 |
commit | 4be49d756894daca0e8a4477d36c6ed1096ccddc (patch) | |
tree | d013f146189a190d3260baaa597067a1fb10a0ad /builtin/clone.c | |
parent | 396da8f7a07ae02a6152e0c0fc3eaac8a99b4c65 (diff) | |
download | git-4be49d756894daca0e8a4477d36c6ed1096ccddc.tar.gz |
checkout,clone: check return value of create_symref
It's unlikely that we would fail to create or update a
symbolic ref (especially HEAD), but if we do, we should
notice and complain. Note that there's no need to give more
details in our error message; create_symref will already
have done so.
While we're here, let's also fix a minor memory leak in
clone.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/clone.c')
-rw-r--r-- | builtin/clone.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/builtin/clone.c b/builtin/clone.c index a0b3cd9e56..a7c8def8cb 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -636,9 +636,11 @@ static void update_remote_refs(const struct ref *refs, struct strbuf head_ref = STRBUF_INIT; strbuf_addstr(&head_ref, branch_top); strbuf_addstr(&head_ref, "HEAD"); - create_symref(head_ref.buf, - remote_head_points_at->peer_ref->name, - msg); + if (create_symref(head_ref.buf, + remote_head_points_at->peer_ref->name, + msg) < 0) + die("unable to update %s", head_ref.buf); + strbuf_release(&head_ref); } } @@ -648,7 +650,8 @@ static void update_head(const struct ref *our, const struct ref *remote, const char *head; if (our && skip_prefix(our->name, "refs/heads/", &head)) { /* Local default branch link */ - create_symref("HEAD", our->name, NULL); + if (create_symref("HEAD", our->name, NULL) < 0) + die("unable to update HEAD"); if (!option_bare) { update_ref(msg, "HEAD", our->old_oid.hash, NULL, 0, UPDATE_REFS_DIE_ON_ERR); |