>>    if (!encrypted_sso_str || apr_strnatcmp(encrypted_sso_str, "false") == 
>> 0) {
>>        if (apr_strnatcasecmp(ap_auth_type(r), "auth_xxx") == 0) {
> NULL != ap_auth_type(r)?
Code is supposed to test, if the required auth type matches (set with AuthType 
directive) with the auth type ("auth_xxx") that module handles. Now 
ap_auth_type(r) seems to return pointer to memory location, that causes 
segmentation fault when accessed (for example in sprintf("Auth type: %s", 
ap_auth_type(r)).

>> *** Segmentation fault *** (ap_auth_type)
>>
>> Here is the backtrace from the core dump:
>> #0  0x00002af41b58b67f in apr_match_glob () from /usr/lib64/libapr-1.so.0
>> #1  0x00002af4249ebb74 in authenticate_user (r=0x2af42ed75488) at 
>> mod_auth_xxx.c:159

> Are you sure this debuger was looking at the runtime binaries?   Do
> you call apr_match_glob elsewhere?
I compiled module with following command:
/usr/sbin/apxs -Wcg -lmcrypt -c mod_auth_tek.c

After that I produced backtrace with following commands (did it couple of times 
because of the apr_match_glob at the bottom):
gdb /usr/sbin/httpd -c /tmp/core.12451
(gdb) bt

I don't call apr_match_glob() directly, but assumed that ap_auth_type(r) call 
caused the execution of the glob function. 

> You might try building with --enable-maintainer-mode
Thanks for the hint. I'll try it next, if nothing else turns up. 

Jouni

Reply via email to