Hi all,
Apache crashes at the start time in mod_dbd.c then AuthDBDUserPWQuery
is not empty. The crash triggered even with then AuthDBDUserPWQuery is
“1”. Isn’t it a bug in Apache? I would like to listen to some feedback
from the list before I file it in bug tracking system. I'm not
familiar with 2.2 version and may be wrong in some aspects of using
it.
Crash dump:
Starting program: /usr/local/apache2_2/bin/httpd -M
[Thread debugging using libthread_db enabled]
[New Thread -1208748352 (LWP 19317)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208748352 (LWP 19317)]
ap_dbd_prepare (s=0x0, query=0x8608560 "select PASS from Users where LOGIN=
%s", label=0x8608560 "select PASS from Users where LOGIN= %s") at mod_dbd.c:149
149 prepared->next = svr->prepared;
(gdb) bt
#0 ap_dbd_prepare (s=0x0, query=0x8608560 "select PASS from Users where LOGIN=
%s", label=0x8608560 "select PASS from Users where LOGIN= %s")
at mod_dbd.c:149
#1 0x08080415 in authn_dbd_prepare (cmd=0xbff80a40, cfg=0x8608558,
query=0x8608560 "select PASS from Users where LOGIN= %s") at mod_authn_dbd.c:70
#2 0x0807880b in invoke_cmd (cmd=0x80d30a0, parms=0xbff80a40,
mconfig=0x8608558, args=0x85daf70 "") at config.c:873
#3 0x08079075 in ap_walk_config (current=0x85daf28, parms=0xbff80a40,
section_vector=0x8607f28) at config.c:1141
#4 0x08070d09 in dirsection (cmd=0xbff80a40, mconfig=0x8606918, arg=0x86081d6
"") at core.c:1865
#5 0x0807880b in invoke_cmd (cmd=0x80d0a80, parms=0xbff80a40,
mconfig=0x8606918, args=0x85dacd0 "/home/ivc2/public_html>") at config.c:873
#6 0x08079075 in ap_walk_config (current=0x85dacb0, parms=0xbff80a40,
section_vector=0x8606578) at config.c:1141
#7 0x08071553 in virtualhost_section (cmd=0xbff80a40, dummy=0x85adfe8,
arg=0x85da7f0 "85.142.33.11>") at core.c:2206
#8 0x0807880b in invoke_cmd (cmd=0x80d0ab0, parms=0xbff80a40,
mconfig=0x85adfe8, args=0x85da7f0 "85.142.33.11>") at config.c:873
#9 0x08079075 in ap_walk_config (current=0x85da7d0, parms=0xbff80a40,
section_vector=0x85acf00) at config.c:1141
#10 0x08079ace in ap_process_config_tree (s=0x856d570, conftree=0x85b22b0,
p=0x85620a8, ptemp=0x85aa240) at config.c:1743
#11 0x08067eeb in main (argc=2, argv=0xbff80ba4) at main.c:621
(gdb)
Relevant part of mod_dbd.c:
DBD_DECLARE_NONSTD(void) ap_dbd_prepare(server_rec *s, const char *query,
const char *label)
{
svr_cfg *svr = ap_get_module_config(s->module_config, &dbd_module);
dbd_prepared *prepared = apr_pcalloc(s->process->pool,
sizeof(dbd_prepared));
prepared->label = label;
prepared->query = query;
prepared->next = svr->prepared;
svr->prepared = prepared;
}
Software versions: apache 2.2.2, arp 1.2.7, linux kernel 2.6.9-34.0.1.EL.
Distribution: CentOS 4.3 on i386.
httpd compilation options:
$ ./configure --prefix=/usr/local/apache2_2
--sysconfdir=/usr/local/apache/conf --enable-so --enable-dav --enable-dav-fs
--enable-dav-lock --enable-suexec
--with-suexec-logfile=/usr/local/apache/logs/suexec_log
--with-suexec-caller=nobody --with-suexec-uidmin=100 --with-suexec-gidmin=100
--with-suexec-docroot=/ --with-suexec-userdir=public_html --enable-logio
--enable-ssl --enable-rewrite --enable-dbd --enable-authn-dbd
arp-utils configuration options:
"/home/cpeasyapache/work/cPanelEA/Apache2_2.pm.build/httpd-2.2.2/srclib/apr-util/configure"
\
"--prefix=/usr/local/apache2_2" \
"--sysconfdir=/usr/local/apache/conf" \
"--enable-so" \
"--enable-dav" \
"--enable-dav-fs" \
"--enable-dav-lock" \
"--enable-suexec" \
"--with-suexec-logfile=/usr/local/apache/logs/suexec_log" \
"--with-suexec-caller=nobody" \
"--with-suexec-uidmin=100" \
"--with-suexec-gidmin=100" \
"--with-suexec-docroot=/" \
"--with-suexec-userdir=public_html" \
"--enable-logio" \
"--enable-ssl" \
"--enable-rewrite" \
"--enable-dbd" \
"--enable-authn-dbd" \
"--cache-file=/dev/null" \
"--srcdir=/home/cpeasyapache/work/cPanelEA/Apache2_2.pm.build/httpd-2.2.2/srclib/apr-util"
\
"--with-apr=../apr" \
"--prefix=/usr/local/apache2_2" \
"--exec-prefix=/usr/local/apache2_2" \
"--libdir=/usr/local/apache2_2/lib" \
"--includedir=/usr/local/apache2_2/include" \
"--bindir=/usr/local/apache2_2/bin" \
"--with-mysql=/usr" \
"$@"
Relevant config section:
<Directory /home/ivc2/public_html>
AllowOverride All
Options +Includes
AuthType Basic
AuthName 'ADMIN ZONE'
AuthBasicProvider dbd
# AuthDBDUserPWQuery "select PASS from Users where LOGIN= %s"
AuthDBDUserPWQuery "1"
require valid-user
</Directory>
Thank you a lot,
Anton Golubev
ENGECON
St. Petersburg