diff options
| author | nulltoken <emeric.fermas@gmail.com> | 2014-08-27 10:28:46 +0200 |
|---|---|---|
| committer | nulltoken <emeric.fermas@gmail.com> | 2014-08-27 17:37:29 +0200 |
| commit | f0c53d21a43a098da2bf96a955ee22feb9ab8a5a (patch) | |
| tree | e4493b74f0cf8a19c4efb17eebcec0d89c01d0b8 | |
| parent | c13b68442fa92c19fb8e92f0c1da4704fe14174f (diff) | |
| download | libgit2-f0c53d21a43a098da2bf96a955ee22feb9ab8a5a.tar.gz | |
winhttp: Prevent swallowing of url parsing error
| -rw-r--r-- | src/transports/winhttp.c | 6 | ||||
| -rw-r--r-- | tests/online/clone.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c index 1e46dfaee..836c488cc 100644 --- a/src/transports/winhttp.c +++ b/src/transports/winhttp.c @@ -1116,9 +1116,9 @@ static int winhttp_action( int ret = -1; if (!t->connection) - if (gitno_connection_data_from_url(&t->connection_data, url, NULL) < 0 || - winhttp_connect(t, url) < 0) - return -1; + if ((ret = gitno_connection_data_from_url(&t->connection_data, url, NULL)) < 0 || + (ret = winhttp_connect(t, url)) < 0) + return ret; if (winhttp_stream_alloc(t, &s) < 0) return -1; diff --git a/tests/online/clone.c b/tests/online/clone.c index 39b4815b1..1ccaf2773 100644 --- a/tests/online/clone.c +++ b/tests/online/clone.c @@ -463,3 +463,9 @@ void test_online_clone__ssh_cannot_change_username(void) cl_git_fail(git_clone(&g_repo, "ssh://git@github.com/libgit2/TestGitRepository", "./foo", &g_options)); } + +void test_online_clone__url_with_no_path_returns_EINVALIDSPEC(void) +{ + cl_git_fail_with(git_clone(&g_repo, "http://github.com", "./foo", &g_options), + GIT_EINVALIDSPEC); +} |
