summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/tls13_handshake.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/lib/libssl/tls13_handshake.c b/src/lib/libssl/tls13_handshake.c
index d324a7f4ba..d739dc99e5 100644
--- a/src/lib/libssl/tls13_handshake.c
+++ b/src/lib/libssl/tls13_handshake.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_handshake.c,v 1.55 2020/05/02 00:30:55 inoguchi Exp $ */ 1/* $OpenBSD: tls13_handshake.c,v 1.56 2020/05/09 08:39:44 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2018-2019 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2018-2019 Theo Buehler <tb@openbsd.org>
4 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org>
@@ -309,13 +309,16 @@ tls13_handshake_perform(struct tls13_ctx *ctx)
309 if (ctx->alert) 309 if (ctx->alert)
310 return tls13_send_alert(ctx->rl, ctx->alert); 310 return tls13_send_alert(ctx->rl, ctx->alert);
311 311
312 if (action->sender == ctx->mode) { 312 if (action->sender == ctx->mode)
313 if ((ret = tls13_handshake_send_action(ctx, action)) <= 0) 313 ret = tls13_handshake_send_action(ctx, action);
314 return ret; 314 else
315 } else { 315 ret = tls13_handshake_recv_action(ctx, action);
316 if ((ret = tls13_handshake_recv_action(ctx, action)) <= 0) 316
317 return ret; 317 if (ctx->alert)
318 } 318 return tls13_send_alert(ctx->rl, ctx->alert);
319
320 if (ret <= 0)
321 return ret;
319 322
320 if (!tls13_handshake_advance_state_machine(ctx)) 323 if (!tls13_handshake_advance_state_machine(ctx))
321 return TLS13_IO_FAILURE; 324 return TLS13_IO_FAILURE;
@@ -340,9 +343,6 @@ tls13_handshake_send_action(struct tls13_ctx *ctx,
340 return TLS13_IO_FAILURE; 343 return TLS13_IO_FAILURE;
341 if (!tls13_handshake_msg_finish(ctx->hs_msg)) 344 if (!tls13_handshake_msg_finish(ctx->hs_msg))
342 return TLS13_IO_FAILURE; 345 return TLS13_IO_FAILURE;
343
344 if (ctx->alert)
345 return tls13_send_alert(ctx->rl, ctx->alert);
346 } 346 }
347 347
348 if ((ret = tls13_handshake_msg_send(ctx->hs_msg, ctx->rl)) <= 0) 348 if ((ret = tls13_handshake_msg_send(ctx->hs_msg, ctx->rl)) <= 0)
@@ -424,9 +424,6 @@ tls13_handshake_recv_action(struct tls13_ctx *ctx,
424 } 424 }
425 } 425 }
426 426
427 if (ctx->alert)
428 ret = tls13_send_alert(ctx->rl, ctx->alert);
429
430 tls13_handshake_msg_free(ctx->hs_msg); 427 tls13_handshake_msg_free(ctx->hs_msg);
431 ctx->hs_msg = NULL; 428 ctx->hs_msg = NULL;
432 429