diff --git a/src/transports/http.c b/src/transports/http.c index 4070b683a..234ee229f 100644 --- a/src/transports/http.c +++ b/src/transports/http.c @@ -1009,6 +1009,7 @@ static int http_close(git_smart_subtransport *subtransport) git_vector_clear(&t->auth_contexts); gitno_connection_data_free_ptrs(&t->connection_data); + memset(&t->connection_data, 0x0, sizeof(gitno_connection_data)); return 0; } diff --git a/tests/online/fetch.c b/tests/online/fetch.c index ec16dd2fd..848b87410 100644 --- a/tests/online/fetch.c +++ b/tests/online/fetch.c @@ -202,3 +202,14 @@ void test_online_fetch__remote_symrefs(void) git_remote_free(remote); } + +void test_online_fetch__twice(void) +{ + git_remote *remote; + + cl_git_pass(git_remote_create(&remote, _repo, "test", "http://github.com/libgit2/TestGitRepository.git")); + cl_git_pass(git_remote_fetch(remote, NULL, NULL, NULL)); + cl_git_pass(git_remote_fetch(remote, NULL, NULL, NULL)); + + git_remote_free(remote); +}