diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2021-01-07 14:01:30 +0000 |
|---|---|---|
| committer | Edward Thomson <ethomson@edwardthomson.com> | 2021-01-07 14:01:30 +0000 |
| commit | 32350e89d8e3ca245def9ccee05aa21c92e10726 (patch) | |
| tree | f59aa80b1ef146f7fc0783ded1bcdef7ba6c0a93 | |
| parent | c41871e542dce9cfb1b5cf1814e17c65c7e04ce4 (diff) | |
| download | libgit2-32350e89d8e3ca245def9ccee05aa21c92e10726.tar.gz | |
remote: don't update invalid refs
If a symbolic reference points to something invalid, then do not try to
update it.
| -rw-r--r-- | src/remote.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/remote.c b/src/remote.c index 29e15bbdf..55effccfb 100644 --- a/src/remote.c +++ b/src/remote.c @@ -1141,6 +1141,16 @@ static int remote_head_for_ref(git_remote_head **out, git_remote *remote, git_re ref_name = git_reference_name(resolved_ref); } + /* + * The ref name may be unresolvable - perhaps it's pointing to + * something invalid. In this case, there is no remote head for + * this ref. + */ + if (!ref_name) { + error = 0; + goto cleanup; + } + if ((error = ref_to_update(&update, &remote_name, remote, spec, ref_name)) < 0) goto cleanup; |
