diff --git a/src/kex-gss.c b/src/kex-gss.c index 86ea55f6..fd313243 100644 --- a/src/kex-gss.c +++ b/src/kex-gss.c @@ -591,6 +591,7 @@ int ssh_server_gss_kex_process_init(ssh_session session, ssh_buffer packet) if (!(ret_flags & GSS_C_INTEG_FLAG) || !(ret_flags & GSS_C_MUTUAL_FLAG)) { SSH_LOG(SSH_LOG_WARN, "GSSAPI(accept) integrity and mutual flags were not set"); + gss_release_buffer(&min_stat, &output_token); goto error; } SSH_LOG(SSH_LOG_DEBUG, "token accepted"); @@ -607,6 +608,7 @@ int ssh_server_gss_kex_process_init(ssh_session session, ssh_buffer packet) "creating mic failed", maj_stat, min_stat); + gss_release_buffer(&min_stat, &output_token); goto error; } @@ -621,15 +623,14 @@ int ssh_server_gss_kex_process_init(ssh_session session, ssh_buffer packet) output_token.length, (size_t)output_token.length, output_token.value); + gss_release_buffer(&min_stat, &output_token); + gss_release_buffer(&min_stat, &mic); if (rc != SSH_OK) { ssh_set_error_oom(session); ssh_buffer_reinit(session->out_buffer); goto error; } - gss_release_buffer(&min_stat, &output_token); - gss_release_buffer(&min_stat, &mic); - rc = ssh_packet_send(session); if (rc == SSH_ERROR) { goto error;