summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2017-05-07 03:27:06 +0000
committerjsing <>2017-05-07 03:27:06 +0000
commit939caa9f5a94e32a8cd5c477ca014545d378cf18 (patch)
tree20907def6a5b07feee638b9507636dab93a1037e /src/lib
parent538e71e8b49f03c5fed6f68647e294af0ccbf7f9 (diff)
downloadopenbsd-939caa9f5a94e32a8cd5c477ca014545d378cf18.tar.gz
openbsd-939caa9f5a94e32a8cd5c477ca014545d378cf18.tar.bz2
openbsd-939caa9f5a94e32a8cd5c477ca014545d378cf18.zip
Ensure that a client context has been connected before attempting to
complete a TLS handshake.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libtls/tls_client.c9
-rw-r--r--src/lib/libtls/tls_internal.h7
2 files changed, 12 insertions, 4 deletions
diff --git a/src/lib/libtls/tls_client.c b/src/lib/libtls/tls_client.c
index 0e519684ef..b92490f25d 100644
--- a/src/lib/libtls/tls_client.c
+++ b/src/lib/libtls/tls_client.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_client.c,v 1.41 2017/04/10 17:11:13 jsing Exp $ */ 1/* $OpenBSD: tls_client.c,v 1.42 2017/05/07 03:27:06 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -230,6 +230,8 @@ tls_connect_common(struct tls *ctx, const char *servername)
230 goto err; 230 goto err;
231 } 231 }
232 } 232 }
233
234 ctx->state |= TLS_CONNECTED;
233 rv = 0; 235 rv = 0;
234 236
235 err: 237 err:
@@ -297,6 +299,11 @@ tls_handshake_client(struct tls *ctx)
297 goto err; 299 goto err;
298 } 300 }
299 301
302 if ((ctx->state & TLS_CONNECTED) == 0) {
303 tls_set_errorx(ctx, "context not connected");
304 goto err;
305 }
306
300 ctx->state |= TLS_SSL_NEEDS_SHUTDOWN; 307 ctx->state |= TLS_SSL_NEEDS_SHUTDOWN;
301 308
302 ERR_clear_error(); 309 ERR_clear_error();
diff --git a/src/lib/libtls/tls_internal.h b/src/lib/libtls/tls_internal.h
index ba007a6714..2b451697dc 100644
--- a/src/lib/libtls/tls_internal.h
+++ b/src/lib/libtls/tls_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_internal.h,v 1.59 2017/05/06 20:59:28 jsing Exp $ */ 1/* $OpenBSD: tls_internal.h,v 1.60 2017/05/07 03:27:06 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org> 3 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
4 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
@@ -124,8 +124,9 @@ struct tls_conninfo {
124#define TLS_SERVER_CONN (1 << 2) 124#define TLS_SERVER_CONN (1 << 2)
125 125
126#define TLS_EOF_NO_CLOSE_NOTIFY (1 << 0) 126#define TLS_EOF_NO_CLOSE_NOTIFY (1 << 0)
127#define TLS_HANDSHAKE_COMPLETE (1 << 1) 127#define TLS_CONNECTED (1 << 1)
128#define TLS_SSL_NEEDS_SHUTDOWN (1 << 2) 128#define TLS_HANDSHAKE_COMPLETE (1 << 2)
129#define TLS_SSL_NEEDS_SHUTDOWN (1 << 3)
129 130
130struct tls_ocsp_result { 131struct tls_ocsp_result {
131 const char *result_msg; 132 const char *result_msg;