From: gordonthree at gmail dot com Operating system: Centos 5 PHP version: 5CVS-2007-09-13 (CVS) PHP Bug Type: ODBC related Bug description: httpd segfaults when odbc_pconnect called with incorrect username/password
Description: ------------ When attempting to connect to an odbc data source via odbc_pconnect with incorrect username and/or password, the httpd (apache) instance handling that connection segfaults. OS is Centos 5 (RHEL5) running in a vmware server virtual machine 32 bit I am using ODBC to connect to a mysql server running on localhost for persistent db connections and mysql stored proc support. Reproduce code: --------------- <HTML><BODY> <?php $link_id = odbc_pconnect('Default', 'root','badpassword'); if(!$link_id){die("no connection!");} else{echo "connected";} ?> </BODY></HTML> Expected result: ---------------- user should see connected printed on web page. Actual result: -------------- from httpd/error_log [Wed Sep 12 23:45:44 2007] [notice] child pid 2233 exit signal Segmentation fault (11) [EMAIL PROTECTED] ~]# gdb http 2232 GNU gdb Red Hat Linux (6.5-16.el5rh) This GDB was configured as "i386-redhat-linux-gnu"...http: No such file or directory. Attaching to process 2232 Reading symbols from /usr/sbin/httpd...(no debugging symbols found)...done. Using host libthread_db library "/lib/libthread_db.so.1". . (no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/mod_suexec.so Reading symbols from /usr/lib/httpd/modules/mod_disk_cache.so...(no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/mod_disk_cache.so Reading symbols from /usr/lib/httpd/modules/mod_file_cache.so... (no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/mod_file_cache.so Reading symbols from /usr/lib/httpd/modules/mod_mem_cache.so...(no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/mod_mem_cache.so Reading symbols from /usr/lib/httpd/modules/mod_cgi.so... (no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/mod_cgi.so Reading symbols from /usr/lib/httpd/modules/mod_perl.so...(no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/mod_perl.so Reading symbols from /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so... (no debugging symbols found)...done. Loaded symbols for /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so Reading symbols from /lib/libutil.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/libutil.so.1 Reading symbols from /usr/lib/httpd/modules/libphp5.so... (no debugging symbols found)...done. Loaded symbols for /etc/httpd/modules/libphp5.so Reading symbols from /usr/lib/libaspell.so.15...(no debugging symbols found)...done. Loaded symbols for /usr/lib/libaspell.so.15 Reading symbols from /usr/lib/libpspell.so.15... (no debugging symbols found)...done. Loaded symbols for /usr/lib/libpspell.so.15 Reading symbols from /usr/lib/sse2/libgmp.so.3...done. Loaded symbols for /usr/lib/sse2/libgmp.so.3 Reading symbols from /usr/lib/libcurl.so.3...done. Loaded symbols for /usr/lib/libcurl.so.3 Reading symbols from /usr/lib/libbz2.so.1...done. Loaded symbols for /usr/lib/libbz2.so.1 Reading symbols from /usr/lib/libxml2.so.2...done. Loaded symbols for /usr/lib/libxml2.so.2 Reading symbols from /usr/lib/libidn.so.11...done. Loaded symbols for /usr/lib/libidn.so.11 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /usr/lib/httpd/modules/mod_python.so...done. Loaded symbols for /etc/httpd/modules/mod_python.so Reading symbols from /usr/lib/libpython2.4.so.1.0...done. Loaded symbols for /usr/lib/libpython2.4.so.1.0 Reading symbols from /usr/lib/httpd/modules/mod_ssl.so...done. Loaded symbols for /etc/httpd/modules/mod_ssl.so Reading symbols from /usr/lib/libdistcache.so.1...done. Loaded symbols for /usr/lib/libdistcache.so.1 Reading symbols from /usr/lib/libnal.so.1...done. Loaded symbols for /usr/lib/libnal.so.1 Reading symbols from /usr/lib/php/modules/ldap.so...done. Loaded symbols for /usr/lib/php/modules/ldap.so Reading symbols from /usr/lib/php/modules/mbstring.so...done. Loaded symbols for /usr/lib/php/modules/mbstring.so Reading symbols from /usr/lib/php/modules/mysql.so...done. Loaded symbols for /usr/lib/php/modules/mysql.so Reading symbols from /usr/lib/mysql/libmysqlclient.so.15...done. Loaded symbols for /usr/lib/mysql/libmysqlclient.so.15 Reading symbols from /usr/lib/php/modules/mysqli.so...done. Loaded symbols for /usr/lib/php/modules/mysqli.so Reading symbols from /usr/lib/php/modules/odbc.so...done. Loaded symbols for /usr/lib/php/modules/odbc.so Reading symbols from /usr/lib/libodbc.so.1...done. Loaded symbols for /usr/lib/libodbc.so.1 Reading symbols from /usr/lib/libodbcpsql.so.2...done. Loaded symbols for /usr/lib/libodbcpsql.so.2 Reading symbols from /usr/lib/php/modules/pdo.so...done. Loaded symbols for /usr/lib/php/modules/pdo.so Reading symbols from /usr/lib/php/modules/pdo_mysql.so...done. Loaded symbols for /usr/lib/php/modules/pdo_mysql.so Reading symbols from /usr/lib/php/modules/pdo_odbc.so...done. Loaded symbols for /usr/lib/php/modules/pdo_odbc.so Reading symbols from /usr/lib/php/modules/pdo_sqlite.so...done. Loaded symbols for /usr/lib/php/modules/pdo_sqlite.so 0x00310402 in __kernel_vsyscall () (gdb) where #0 0x00310402 in __kernel_vsyscall () #1 0x004179eb in semop () from /lib/libc.so.6 #2 0x00333dba in apr_os_proc_mutex_put () from /usr/lib/libapr-1.so.0 #3 0x00333392 in apr_proc_mutex_lock () from /usr/lib/libapr-1.so.0 #4 0x00fc56ee in ap_graceful_stop_signalled () from /usr/sbin/httpd #5 0x00fc5b71 in ap_graceful_stop_signalled () from /usr/sbin/httpd #6 0x00fc5c4a in ap_graceful_stop_signalled () from /usr/sbin/httpd #7 0x00fc67ab in ap_mpm_run () from /usr/sbin/httpd #8 0x00f9d127 in main () from /usr/sbin/httpd PHP info: # php -v PHP 5.1.6 (cli) (built: May 8 2007 19:51:21) # httpd -V Server version: Apache/2.2.3 Server built: Jun 26 2007 19:26:32 Server's Module Magic Number: 20051115:3 Server loaded: APR 1.2.7, APR-Util 1.2.7 Compiled using: APR 1.2.7, APR-Util 1.2.7 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" # cat /etc/odbc.ini [ODBC Data Sources] MySQL = MySQL Generic ODBC Driver [Default] DRIVER=/usr/lib/libmyodbc5.so SERVER=localhost DATABASE=ulogdb UID= PWD= PORT=3306 # mysql -V mysql Ver 14.12 Distrib 5.0.22, for redhat-linux-gnu (i686) using readline 5.0 -- Edit bug report at http://bugs.php.net/?id=42650&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=42650&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=42650&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=42650&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=42650&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=42650&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=42650&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=42650&r=needscript Try newer version: http://bugs.php.net/fix.php?id=42650&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=42650&r=support Expected behavior: http://bugs.php.net/fix.php?id=42650&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=42650&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=42650&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=42650&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=42650&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=42650&r=dst IIS Stability: http://bugs.php.net/fix.php?id=42650&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=42650&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=42650&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=42650&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=42650&r=mysqlcfg