From 68423b146151a15c5373a24506506c588ae08729 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 28 Apr 2016 17:39:26 +0200 Subject: 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 --- crypto/bio/bss_acpt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'crypto/bio') 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: -- cgit v1.2.3