Skip to content

Commit a2240a3

Browse files
committed
set EAP fail if eap_tls_request() fails
1 parent cb030e3 commit a2240a3

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/lib/eap/tls.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ static unlang_action_t eap_tls_handshake_resume(request_t *request, void *uctx)
891891
* TLS proper can decide what to do, then.
892892
*/
893893
if (tls_session->dirty_out.used > 0) {
894-
eap_tls_request(request, eap_session);
894+
if (eap_tls_request(request, eap_session) < 0) goto fail;
895895
eap_tls_session->state = EAP_TLS_HANDLED;
896896
goto finish;
897897
}
@@ -919,6 +919,7 @@ static unlang_action_t eap_tls_handshake_resume(request_t *request, void *uctx)
919919
/*
920920
* Who knows what happened...
921921
*/
922+
fail:
922923
REDEBUG("TLS failed during operation");
923924
eap_tls_session->state = EAP_TLS_FAIL;
924925

@@ -970,11 +971,13 @@ static inline CC_HINT(always_inline) unlang_action_t eap_tls_handshake_push(requ
970971
* session object SHOULD be maintained even after the session is completed, for session
971972
* resumption.
972973
*
974+
* Note that we never return FAIL to the interpreter. Instead, we
975+
* send the EAP failure back to the supplicant.
976+
*
973977
* @param request the request
974978
* @param eap_session to continue.
975979
* @return
976-
* - EAP_TLS_ESTABLISHED
977-
* - EAP_TLS_HANDLED
980+
* - UNLANG_ACTION_CALCULATE_RESULT
978981
*/
979982
unlang_action_t eap_tls_process(request_t *request, eap_session_t *eap_session)
980983
{
@@ -1106,8 +1109,11 @@ unlang_action_t eap_tls_process(request_t *request, eap_session_t *eap_session)
11061109
goto done;
11071110
}
11081111

1109-
eap_tls_request(request, eap_session);
1110-
eap_tls_session->state = EAP_TLS_HANDLED;
1112+
if (eap_tls_request(request, eap_session) < 0) {
1113+
eap_tls_session->state = EAP_TLS_FAIL;
1114+
} else {
1115+
eap_tls_session->state = EAP_TLS_HANDLED;
1116+
}
11111117
goto done;
11121118

11131119
/*

0 commit comments

Comments
 (0)