https://bugs.openldap.org/show_bug.cgi?id=9181

--- Comment #2 from Howard Chu <[email protected]> ---
(In reply to Ondřej Kuzník from comment #1)
> On Tue, Mar 10, 2020 at 02:47:09PM +0000, [email protected] wrote:
> > The global options have a mutex, ldo_mutex, that is left NUL-initialised.  
> > This
> > is no problem on must platforms where a mutex is a structure, and all NUL 
> > values
> > is a valid mutex, but on Windows, the mutex is a handle.  This handle is 
> > invalid
> > if it's 0, which causes WaitForSingleObject to return an error.
> > 
> > ldap_set_option tries to obtain a lock on the global options.  On anything 
> > but
> > Windows, this protects data corruption in multi-threaded use, but on 
> > Windows, it
> > didn't: there wasn't a mutex to lock, and the result of LDAP_MUTEX_LOCK is 
> > never
> > checked.
> > 
> > I fixed my local build of OpenLDAP using the attached patch, which satisfied
> > both Application Verifier, and stopped our product from crashing in certain
> > tests that call ldap_set_options from multiple worker threads (in our case, 
> > the
> > OpenSSL context was sometimes corrupted.)
> 
> Hi Edwin,
> thanks for the patch.
> 
> Looking at it in the context of ITS#7996, it seems the race outlined in
> that ticket is not completely fixed on Windows? Do you know a way to
> achieve a desired behaviour there?

I've had to solve this problem recently in another project. I'll take care of
this.

-- 
You are receiving this mail because:
You are watching someone on the CC list of the bug.

Reply via email to