From: Richard Levitte Date: Thu, 28 Apr 2016 15:39:26 +0000 (+0200) Subject: Fix BIO_set_nbio_accept() X-Git-Tag: OpenSSL_1_1_0-pre6~1022 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=68423b146151a15c5373a24506506c588ae08729;p=oweals%2Fopenssl.git Fix BIO_set_nbio_accept() The code that implements this control would work when enabling nbio, but the disabling code needed fixing. Reviewed-by: Matt Caswell --- diff --git a/crypto/bio/bss_acpt.c b/crypto/bio/bss_acpt.c index 8cd66fe1ee..70168ecd59 100644 --- a/crypto/bio/bss_acpt.c +++ b/crypto/bio/bss_acpt.c @@ -474,16 +474,17 @@ static long acpt_ctrl(BIO *b, int cmd, long num, void *ptr) data->param_serv = BUF_strdup(ptr); b->init = 1; } else if (num == 2) { - if (ptr != NULL) - data->bind_mode |= BIO_SOCK_NONBLOCK; - else - data->bind_mode &= ~BIO_SOCK_NONBLOCK; + data->bind_mode |= BIO_SOCK_NONBLOCK; } else if (num == 3) { BIO_free(data->bio_chain); data->bio_chain = (BIO *)ptr; } else if (num == 4) { data->accept_family = *(int *)ptr; } + } else { + if (num == 2) { + data->bind_mode &= ~BIO_SOCK_NONBLOCK; + } } break; case BIO_C_SET_NBIO: