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.
