Created attachment 349275 [details] Test case threading_locking_callback() in m2crypto does not block on a lock when the lock is held by another thread. Compile the test case with gcc m2crypto-threading-test.c -ldl $(pkg-config --cflags --libs openssl) and run ./a.out /usr/lib64/python2.6/site-packages/M2Crypto/__m2crypto.so (adjusting for your M2Crypto module path). The program should block after printing "lock 3" (when attempting to lock an already locked lock), but it doesn't.
Created attachment 349276 [details] Patch against upstream svn
Upstream: https://bugzilla.osafoundation.org/show_bug.cgi?id=12847
Release note added. If any revisions are required, please set the "requires_release_notes" flag to "?" and edit the "Release Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: the OpenSSL locking callback in M2Crypto did not block on a lock when the lock was held by another thread. This could cause data corruption in multi-threaded applications. The locking callback now functions correctly, regardless of which thread holds the lock.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2009-1351.html