Hallo,
I think in b_sock.c I've stumbled into some error cases in which some locking
isn't undone:
> diff b_sock.c b_sock.fixed.c
250c250,251
< if (ret == NULL) return(NULL);
---
> if (ret == NULL)
> goto err;
352,353c353,357
< if (ret == NULL) return(NULL);
< if (j > 128) return(ret); /* too big to cache */
---
> if (ret == NULL || j > 128) /* not found or too big to
cache */
> {
> CRYPTO_w_unlock(CRYPTO_LOCK_BIO_GETHOSTBYNAME);
> return(ret);
> }
By
Goetz
--
Goetz Babin-Ebell mailto:[EMAIL PROTECTED]
TC Trust Center for Security http://www.trustcenter.de
in Data Networks GmbH Tel.: +49-40-766 29 3301
Am Werder 1 / 21073 Hamburg / Germany Fax.: +49-40-766 29 577
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]