On 31 Mar 2012, at 3:10 AM, Gregg Smith wrote: > I found this to be an interesting error message: > > [Fri Mar 30 18:07:41.019600 2012] [session_crypto:error] [pid 4236:tid 700] > (100005)Error string not specified yet: AH01845: (null) > > very informative :)
Can you give more details of the crypto driver you're trying to use?
Using the error code "AH01845", a quick search of the source shows up this:
rv = apr_crypto_get_driver(&driver, conf->library, conf->params, &err,
p);
...
if (APR_SUCCESS != rv && err) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(01845)
"%s", err->msg);
return rv;
}
It looks like the error code returned by apr_crypto_get_driver() is not
recognised as an APR error, and the error message being printed is the string
"(null)".
This comes from here:
apr_dso_error(dso, buffer, ERROR_SIZE - 1);
err->msg = buffer;
err->reason = modname;
What this means is that an attempt to load a DSO is failing, with an unknown
APR error code and an error message of "(null)".
The assumption that the underlying driver will always return a sensible error
message seems to be bogus, this won't help with the message, but will in theory
give a hint to the driver involved:
Index: modules/session/mod_session_crypto.c
===================================================================
--- modules/session/mod_session_crypto.c (revision 1307617)
+++ modules/session/mod_session_crypto.c (working copy)
@@ -435,7 +435,7 @@
}
if (APR_SUCCESS != rv && err) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(01845)
- "%s", err->msg);
+ "The crypto library '%s' could not be loaded: %s (%s)",
conf->library, err->msg, err->reason);
return rv;
}
if (APR_ENOTIMPL == rv) {
Can you confirm?
Regards,
Graham
--
smime.p7s
Description: S/MIME cryptographic signature
