summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/transports/auth_negotiate.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/transports/auth_negotiate.c b/src/transports/auth_negotiate.c
index d06bf746f..e1fa803ed 100644
--- a/src/transports/auth_negotiate.c
+++ b/src/transports/auth_negotiate.c
@@ -128,9 +128,9 @@ static int negotiate_next_token(
input_token.length = input_buf.size;
input_token_ptr = &input_token;
} else if (ctx->gss_context != GSS_C_NO_CONTEXT) {
- git_error_set(GIT_ERROR_NET, "could not restart authentication");
- error = -1;
- goto done;
+ /* If we're given a half-built security context, delete it so auth can continue. */
+ gss_delete_sec_context(&status_minor, &ctx->gss_context, GSS_C_NO_BUFFER);
+ ctx->gss_context = GSS_C_NO_CONTEXT;
}
mech = &negotiate_oid_spnego;