[Spice-devel] [PATCH 7/7] Avoids to initialise OpenSSL threading twice

Frediano Ziglio fziglio at redhat.com
Thu Aug 11 12:42:22 UTC 2016


> 
> Hi Frediano,
> 
> did you notice any issues ?
> 
> CRYPTO_get_locking_callback is kinda deprecated/not needed/noop in recent
> openssl:
> https://github.com/openssl/openssl/commit/2e52e7df518d80188c865ea3f7bb3526d14b0c
> 08
> 

Wonderful, finally some sane improvements about threading and library!
This is really a good news!
Hope they also fix the leaks one day of another.
Didn't notice any issues, just preventing problems if another library
linked to the same program decide the use the same functions.
I think the patch is safe in any case.
As a future work we should detect OpenSSL version and avoid to
initialize threads as useless.

Frediano

> Pavel
> 
> On Thu, 2016-08-11 at 09:50 +0100, Frediano Ziglio wrote:
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  server/reds.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/server/reds.c b/server/reds.c
> > index 6f88649..f74c8d3 100644
> > --- a/server/reds.c
> > +++ b/server/reds.c
> > @@ -2792,6 +2792,13 @@ static void openssl_thread_setup(void)
> >  {
> >      int i;
> >  
> > +    /* Somebody else already setup threading for OpenSSL,
> > +     * don't do it twice to avoid possible races.
> > +     */
> > +    if (CRYPTO_get_locking_callback() != NULL) {
> > +        return;
> > +    }
> > +
> >      lock_cs = OPENSSL_malloc(CRYPTO_num_locks() *
> >      sizeof(pthread_mutex_t));
> >  
> >      for (i = 0; i < CRYPTO_num_locks(); i++) {
> 


More information about the Spice-devel mailing list