DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20951>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20951 Locking upcalls not set for SSLCryptoDevice chil Summary: Locking upcalls not set for SSLCryptoDevice chil Product: Apache httpd-2.0 Version: 2.0.46 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: mod_ssl AssignedTo: [email protected] ReportedBy: [EMAIL PROTECTED] Using httpd-2.0.46-win32-src.zip, in modules/ssl/ssl_engine_init.c: On line 278, ssl_util_thread_setup is called which eventually calls CRYPTO_set_locking_callback. Prior to this, no locking callback is set. However, on line 272, ssl_init_Engine is called which, when using the chil openssl engine, eventually gets to this chunk of code in hw_init (openssl-0.9.7b/crypto/engine/hw_ncipher.c): /* Check if the application decided to support dynamic locks, and if it does, use them. */ if (disable_mutex_callbacks == 0) { if (CRYPTO_get_dynlock_create_callback() != NULL && CRYPTO_get_dynlock_lock_callback() != NULL && CRYPTO_get_dynlock_destroy_callback() != NULL) { hwcrhk_globals.mutex_init = hwcrhk_mutex_init; hwcrhk_globals.mutex_acquire = hwcrhk_mutex_lock; hwcrhk_globals.mutex_release = hwcrhk_mutex_unlock; hwcrhk_globals.mutex_destroy = hwcrhk_mutex_destroy; } else if (CRYPTO_get_locking_callback() != NULL) { HWCRHKerr (HWCRHK_F_HWCRHK_INIT,HWCRHK_R_DYNAMIC_LOCKING_MISSING); ERR_add_error_data(1,"You HAVE to add dynamic locking callbacks via CRYPTO_set_dynlock_{create,lock,destroy}_callback()"); #if 1 /* This is a HACK which will disappear in 0.9.8 */ hwcrhk_globals.maxmutexes = 1; /* Only have one lock */ hwcrhk_globals.mutex_init = hwcrhk_static_mutex_init; hwcrhk_globals.mutex_acquire = hwcrhk_static_mutex_lock; hwcrhk_globals.mutex_release = hwcrhk_static_mutex_unlock; hwcrhk_globals.mutex_destroy = hwcrhk_static_mutex_destroy; #else goto err; #endif } } No dynamic locking callbacks have been set so it checks, if (CRYPTO_get_locking_callback() != NULL), yet no static locking callback has been set either as ssl_util_thread_setup has still to be called. It therefore proceeds with no hwcrhk mutex calls which causes an assertion failure in ncipher's software. Calling ssl_util_thread_setup before ssl_init_Engine results in the hwcrhk_static_* calls being used and Apache functioning normally. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
