On 08/04/2020 18:06, Viktor Dukhovni wrote: > On Wed, Apr 08, 2020 at 11:47:19AM +0100, Scott Morgan via openssl-users wrote: > >> Run into an odd issue. >> >> Consider the following program, based on the documentation[0], using >> OpenSSL 1.1.1f >> >> abio = BIO_new_accept("4444"); >> res = BIO_do_accept(abio); > > It seems to me that since commit 417be660e1c BIO_do_accept() has > incomplete error handling, "ret" isn't assigned when bind() or listen() > fail: > ...<snip>... > > So the function returns the wrong value of ret, in your case the the > socket descriptor created in an earlier case in the loop. The fix is > presumably to set ret to either -1 or 0, whichever is appropriate here. > That makes sense. Just checked github, and there is a ticket listing that problem, #7717 Scott