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]

Reply via email to