#39802 [Opn->Fbk]: PHP segfaults with odbc_connect()

From: Date: Mon, 11 Dec 2006 22:59:36 +0000
Subject: #39802 [Opn->Fbk]: PHP segfaults with odbc_connect()
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-106220@lists.php.net to get a copy of this message
ID: 39802 Updated by: tony2001@php.net Reported By: webmaster at guestwho dot com -Status: Open +Status: Feedback Bug Type: ODBC related Operating System: FreeBSD 6.1-RELEASE PHP Version: 5.2.0 New Comment: Please make sure the sources are not broken in some weird way. The "rc" variable is of type "RETCODE" which is used innumerable times before that line. Or maybe the error happens somewhere before that point, but you've posted only the last lines of the output. Previous Comments: ------------------------------------------------------------------------ [2006-12-11 22:48:15] webmaster at guestwho dot com Attempting building the latest CVS, which fails as follows: /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c: In function `zif_odbc_tableprivileges': /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3620: error: syntax error before "rc" /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3642: error: `rc' undeclared (first use in this function) /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3642: error: structure has no member named `hdbc' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3642: error: structure has no member named `stmt' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3643: error: `SQL_INVALID_HANDLE' undeclared (first use in this function) /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3649: error: `SQL_ERROR' undeclared (first use in this function) /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3650: error: `SQL_NULL_HSTMT' undeclared (first use in this function) /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3655: warning: implicit declaration of function `SQLTablePrivileges' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3655: error: structure has no member named `stmt' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3656: error: `SWORD' undeclared (first use in this function) /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3656: error: `SQL_NTS' undeclared (first use in this function) /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3666: error: structure has no member named `numparams' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3667: error: structure has no member named `stmt' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3667: error: structure has no member named `numcols' /usr/local/src/php5.2-200612112130/ext/odbc/php_odbc.c:3669: error: structure has no member named `numcols' *** Error code 1 ------------------------------------------------------------------------ [2006-12-11 22:29:53] tony2001@php.net Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip ------------------------------------------------------------------------ [2006-12-11 22:26:06] webmaster at guestwho dot com Description: ------------ I have been trying to connect a microsoft access database using PHP, mdbtools and unixODBC, but any attempt at calling odbc_connect() results in an immediate segfault. This behaviour occurs in both the shared apache module and the standalone cgi version. Only the latter dumps core though. PHP is configured as follows: ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql \ --with-zlib --with-pdo-mysql=/usr/local/mysql --enable-mbstring \ --with-curl=/usr/local --enable-debug --with-openssl=/usr/local/ssl \ --with-gd --with-custom-odbc=/usr/local Here are the unixODBC configs: odbcinst.ini ------------- [MDBToolsODBC] Description = MDB Tools ODBC drivers Driver = /usr/local/lib/libmdbodbc.0 Setup = FileUsage = 1 CPTimeout = CPReuse = DisableGetFunctions = 0 UsageCount = 1 -------------- odbc.ini -------------- [Water] Description = Water Module Driver = MDBToolsODBC Trace = Yes TraceFile = /var/log/sql.log Database = /home/skeleton-man/public_html/water/water.mdb Servername = localhost UserName = Password = --------------- Reproduce code: --------------- <? $myDB = odbc_connect('Water','',''); $query = "SELECT RLCode FROM Account"; $result = odbc_exec($myDB, $query); while (odbc_fetch_row($result)){ print odbc_result($result,'RLCode')."<br>"; } ?> Expected result: ---------------- It should print a list of account numbers from the RLCode column in the database. Actual result: -------------- PHP segfaults immediately with no output. Backtrace: #0 0x082ef680 in zend_hash_find (ht=0x8829668, arKey=0x884137c "unixODBC_Water___2", nKeyLength=19, pData=0x10000) at /usr/local/src/php-5.2.0/Zend/zend_hash.c:849 #1 0x081a26ac in odbc_do_connect (ht=3, return_value=0x8841364, return_value_ptr=0x0, this_ptr=0x0, return_value_used=1, persistent=0) at /usr/local/src/php-5.2.0/ext/odbc/php_odbc.c:2341 #2 0x081a1c13 in zif_odbc_connect (ht=3, return_value=0x8841364, return_value_ptr=0x0, this_ptr=0x0, return_value_used=1) at /usr/local/src/php-5.2.0/ext/odbc/php_odbc.c:2053 #3 0x083008a6 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfbfd510) at zend_vm_execute.h:200 #4 0x0830002d in execute (op_array=0x8840a84) at zend_vm_execute.h:92 #5 0x082e87c3 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/local/src/php-5.2.0/Zend/zend.c:1097 #6 0x082b1ee5 in php_execute_script (primary_file=0xbfbfec00) at /usr/local/src/php-5.2.0/main/main.c:1758 #7 0x083615ba in main (argc=2, argv=0xbfbfeca8) at /usr/local/src/php-5.2.0/sapi/cgi/cgi_main.c:1625 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39802&edit=1

« previous php.bugs (#106220) next »