summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@elego.de>2013-04-16 00:11:59 +0200
committerCarlos Martín Nieto <cmn@elego.de>2013-04-16 00:11:59 +0200
commit404eadb089f5757842d2703ab1de849dd1f79a24 (patch)
treeaea0df5db615724227e0bda375a48f94762142be
parent67ba7d2031f1eef63d66db6ce3ecaceddb06a4f3 (diff)
downloadlibgit2-404eadb089f5757842d2703ab1de849dd1f79a24.tar.gz
remote: don't try to update FETCH_HEAD if no extra heads exist
Don't try to update anything if there are no heads to update. This saves us from trying to look into a fetch refspec when there is none. A better fix for compatibility with git when using remotes without refspecs is still needed, but this stops us from segfaulting.
-rw-r--r--src/remote.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/remote.c b/src/remote.c
index 54f0a8ac2..56853834b 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -731,6 +731,10 @@ static int git_remote_write_fetchhead(git_remote *remote, git_vector *update_hea
assert(remote);
+ /* no heads, nothing to do */
+ if (update_heads->length == 0)
+ return 0;
+
spec = &remote->fetch;
if (git_vector_init(&fetchhead_refs, update_heads->length, git_fetchhead_ref_cmp) < 0)