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

--- Comment #1 from Ondřej Kuzník <[email protected]> ---
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?

Thanks

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

Reply via email to