diff options
| author | jsing <> | 2017-05-07 01:59:34 +0000 |
|---|---|---|
| committer | jsing <> | 2017-05-07 01:59:34 +0000 |
| commit | afd8d6cd2546c7b2cdef02a4eaaae964a8a21392 (patch) | |
| tree | 2ee9572051194c167e5201c198bd87308abae2df | |
| parent | 29ee702e7ef1b104002800c6df4f393afdec0d34 (diff) | |
| download | openbsd-afd8d6cd2546c7b2cdef02a4eaaae964a8a21392.tar.gz openbsd-afd8d6cd2546c7b2cdef02a4eaaae964a8a21392.tar.bz2 openbsd-afd8d6cd2546c7b2cdef02a4eaaae964a8a21392.zip | |
Return an error if tls_handshake() is called on a TLS context that has
already completed a TLS handshake.
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libtls/tls.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/libtls/tls.c b/src/lib/libtls/tls.c index b639873df4..7906788b08 100644 --- a/src/lib/libtls/tls.c +++ b/src/lib/libtls/tls.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls.c,v 1.62 2017/05/06 20:59:28 jsing Exp $ */ | 1 | /* $OpenBSD: tls.c,v 1.63 2017/05/07 01:59:34 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -627,6 +627,11 @@ tls_handshake(struct tls *ctx) | |||
| 627 | goto out; | 627 | goto out; |
| 628 | } | 628 | } |
| 629 | 629 | ||
| 630 | if ((ctx->state & TLS_HANDSHAKE_COMPLETE) != 0) { | ||
| 631 | tls_set_errorx(ctx, "handshake already completed"); | ||
| 632 | goto out; | ||
| 633 | } | ||
| 634 | |||
| 630 | if ((ctx->flags & TLS_CLIENT) != 0) | 635 | if ((ctx->flags & TLS_CLIENT) != 0) |
| 631 | rv = tls_handshake_client(ctx); | 636 | rv = tls_handshake_client(ctx); |
| 632 | else if ((ctx->flags & TLS_SERVER_CONN) != 0) | 637 | else if ((ctx->flags & TLS_SERVER_CONN) != 0) |
