summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2013-08-21 13:37:21 +0200
committernulltoken <emeric.fermas@gmail.com>2013-08-27 16:57:17 +0200
commitece24ef7c4bb31eb2c715948bcf6dff6ed9d7dfc (patch)
tree2508e9de178de9c5886871127666a6340493d997
parent44bc0c6ac3b939d3dfc1102be77e82e00e919ae4 (diff)
downloadlibgit2-ece24ef7c4bb31eb2c715948bcf6dff6ed9d7dfc.tar.gz
remote: Don't parse missing urls as empty strings
-rw-r--r--src/remote.c2
-rw-r--r--tests-clar/network/remote/remotes.c6
-rw-r--r--tests-clar/resources/testrepo.git/config2
3 files changed, 8 insertions, 2 deletions
diff --git a/src/remote.c b/src/remote.c
index 948c755bb..4bba1d57e 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -308,7 +308,7 @@ int git_remote_load(git_remote **out, git_repository *repo, const char *name)
if ((error = get_optional_config(config, &buf, NULL, (void *)&val)) < 0)
goto cleanup;
- if (val) {
+ if (val && strlen(val) > 0) {
remote->pushurl = git__strdup(val);
GITERR_CHECK_ALLOC(remote->pushurl);
}
diff --git a/tests-clar/network/remote/remotes.c b/tests-clar/network/remote/remotes.c
index dec646526..e356526ed 100644
--- a/tests-clar/network/remote/remotes.c
+++ b/tests-clar/network/remote/remotes.c
@@ -367,8 +367,14 @@ void test_network_remote_remotes__can_load_with_an_empty_url(void)
cl_git_pass(git_remote_load(&remote, _repo, "empty-remote-url"));
+ cl_assert(remote->url == NULL);
+ cl_assert(remote->pushurl == NULL);
+
cl_git_fail(git_remote_connect(remote, GIT_DIRECTION_FETCH));
+ cl_assert(giterr_last() != NULL);
+ cl_assert(giterr_last()->klass == GITERR_INVALID);
+
git_remote_free(remote);
}
diff --git a/tests-clar/resources/testrepo.git/config b/tests-clar/resources/testrepo.git/config
index 904a4e3f3..1264f6ea7 100644
--- a/tests-clar/resources/testrepo.git/config
+++ b/tests-clar/resources/testrepo.git/config
@@ -10,7 +10,7 @@
url = git://github.com/libgit2/libgit2
[remote "empty-remote-url"]
url =
-
+ pushurl =
[remote "test_with_pushurl"]
url = git://github.com/libgit2/fetchlibgit2
pushurl = git://github.com/libgit2/pushlibgit2