ctx->acceptorCtx.vps = frresp->vps;
frresp->vps = NULL;
- rs_conn_destroy(ctx->acceptorCtx.radConn);
- ctx->acceptorCtx.radConn = NULL;
-
major = acceptReadyEap(minor, ctx, cred);
if (GSS_ERROR(major))
goto cleanup;
rs_request_destroy(request);
if (req != NULL)
rs_packet_destroy(req);
+ if (GSSEAP_SM_STATE(ctx) == GSSEAP_STATE_INITIATOR_EXTS) {
+ assert(major == GSS_S_CONTINUE_NEEDED);
+
+ rs_conn_destroy(ctx->acceptorCtx.radConn);
+ ctx->acceptorCtx.radConn = NULL;
+ }
return major;
}
*minor = ERROR_TABLE_BASE_rse + code;
- gssEapSaveStatusInfo(*minor, "%s", rs_err_msg(err, 0));
+ gssEapSaveStatusInfo(*minor, "%s", rs_err_msg(err));
rs_err_free(err);
return GSS_S_FAILURE;