From 2e2c612066aa993717528a0249c15c51128d61cb Mon Sep 17 00:00:00 2001 From: jsing <> Date: Sat, 29 Apr 2017 23:41:32 +0000 Subject: MFC. Fix a bug caused by the return value being set early to signal successful DTLS cookie validation. This can mask a later failure and result in a positive return value being returned from ssl3_get_client_hello(), when it should return a negative value to propagate the error. ok beck@ --- src/lib/libssl/ssl_srvr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index d98a76f8f0..16899de37f 100644 --- a/src/lib/libssl/ssl_srvr.c +++ b/src/lib/libssl/ssl_srvr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl_srvr.c,v 1.11 2017/03/10 16:03:27 jsing Exp $ */ +/* $OpenBSD: ssl_srvr.c,v 1.11.4.1 2017/04/29 23:41:32 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -720,7 +720,7 @@ ssl3_get_client_hello(SSL *s) uint16_t client_version; uint8_t comp_method; int comp_null; - int i, j, ok, al, ret = -1; + int i, j, ok, al, ret = -1, cookie_valid = 0; long n; unsigned long id; unsigned char *p, *d; @@ -887,7 +887,7 @@ ssl3_get_client_hello(SSL *s) SSLerror(s, SSL_R_COOKIE_MISMATCH); goto f_err; } - ret = 2; + cookie_valid = 1; } } @@ -1059,8 +1059,8 @@ ssl3_get_client_hello(SSL *s) goto err; } - if (ret < 0) - ret = 1; + ret = cookie_valid ? 2 : 1; + if (0) { truncated: al = SSL_AD_DECODE_ERROR; -- cgit v1.2.3-55-g6feb