Re: help debugging segfault

Frediano Ziglio <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <CAHt6W4feSxfD3xtQoJ2qv_SVWZTR8mmomL4jV-CcB4WNvAbNOw@mail.gmail.com>
Error came from this line
(http://git.php.net/?p=php-src.git;a=blob;f=ext/pdo_dblib/dblib_driver.c;h=77832f952047d8e3614bb46a49f7b7ca56e98d86;hb=e961c76a0bf81dbf7322fbd87fafc0642b6bef62)

/* allow double quoted indentifiers */
DBSETOPT(H->link, DBQUOTEDIDENT, 1);

PHP pass a number as a pointer to string!

>From MS documentation:

"Note  The param variable must always be a character string enclosed
in quotation marks, even in the case of a numeric value, as in the
preceding DBBUFFER example."

Frediano

2013/3/4 Mark A. Hershberger <[email protected]>:
> I'm working on enabling a connection to Azure's SQL server from PHP (see
> https://bugs.php.net/bug.php?id=64338).
>
> The connection now works -- at least, I can connect to a database other
> than the master one -- but since errors from the server are only
> available from the debug log that FreeTDS has, I need to enable the
> debug log.
>
> The problem: I get a segfault after turning on debugging.
>
> The end of the log is included at [1].
>
> I've also included a backtrace from gdb at [2].
>
> Is this a bug in FreeTDS?  Or is the way I set up the connection from
> PHP wrong?
>
> [1] Debug log end
> 20:05:03.365572 867 (token.c:2355):tds_process_end() state set to TDS_IDLE
> 20:05:03.365583 867 (util.c:156):Changed query state from READING to IDLE
> 20:05:03.365595 867 (token.c:2370):                rows_affected = 0
> 20:05:03.365606 867 (util.c:104):logic error: cannot change query state
> from IDLE to PENDING
> 20:05:03.365618 867 (token.c:540):tds_process_tokens(0x1014090,
> 0x7fffffff9b08, 0x7fffffff9b0c, 0x100)
> 20:05:03.365630 867 (token.c:543):tds_process_tokens() state is COMPLETED
> 20:05:03.365641 867 (login.c:496):successful login
> 20:05:03.365656 867 (dblib.c:239):dblib_add_connection(0x7ffff0464640,
> 0x1014090)
> 20:05:03.365682 867 (dblib.c:4317):dbsetopt(0x1013520, 17, 2147483647, -1)
> 20:05:03.365697 867 (dblib.c:4386):Got DBTEXTSIZE, with param
> '2147483647' (max is 2147483647)
>
> (I added the "successful login" and the "Got DBTEXTSIZE" messages.)
>
> [2] Backtrace from gdb
>
> (gdb) bt
> #0  0x00007ffff4da3304 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x00007ffff023d769 in ?? () from /usr/lib/x86_64-linux-gnu/libsybdb.so.5
> #2  0x00007ffff020f774 in dbsetopt () from
> /usr/lib/x86_64-linux-gnu/libsybdb.so.5
> #3  0x00007fffeeae4629 in pdo_dblib_handle_factory (dbh=0x7ffff7fc4b70,
> driver_options=0x7fffffe9)
>     at
> /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/ext/pdo_dblib/dblib_driver.c:323
> #4  0x00007ffff3e9fa41 in zim_PDO_dbh_constructor (ht=1,
> return_value=0x7fffffe9, return_value_ptr=0x30,
>     this_ptr=0x7ffff7fc4b40, return_value_used=1) at
> /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/ext/pdo/pdo_dbh.c:380
> #5  0x00007ffff40c2edc in xdebug_execute_internal
> (current_execute_data=0x7ffff7f8f060, return_value_used=0)
>     at /tmp/buildd/xdebug-2.2.1/build-php5/xdebug.c:1483
> #6  0x00000000007468be in zend_do_fcall_common_helper_SPEC
> (execute_data=0x7ffff7f8f060)
>     at
> /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/Zend/zend_vm_execute.h:644
> #7  0x00000000007002c7 in execute (op_array=0x7ffff7fc4070)
>     at
> /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/Zend/zend_vm_execute.h:410
> #8  0x00007ffff40c2a81 in xdebug_execute (op_array=0x7ffff7fc4070) at
> /tmp/buildd/xdebug-2.2.1/build-php5/xdebug.c:1391
> #9  0x00000000006a010e in zend_execute_scripts (type=8,
> retval=0x7ffff7fc3800, file_count=3)
>     at /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/Zend/zend.c:1279
> #10 0x000000000063f6e3 in php_execute_script (primary_file=0x7ffff4d9edbc)
>     at /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/main/main.c:2473
> #11 0x0000000000749033 in do_cli (argc=0, argv=0x7fffffffe18b)
>     at /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/sapi/cli/php_cli.c:988
> #12 0x00000000004310ca in main (argc=32767, argv=0xdb9210)
>     at /home/mah/work/DEB-BUILD/build-dir/php5-5.4.4/sapi/cli/php_cli.c:1361
> --
> http://hexmode.com/
>
> Many that live deserve death. And some that die deserve life. Can you
>     give it to them? Then do not be too eager to deal out death in
>     judgment. For even the very wise cannot see all ends.
>         -- J.R.R. Tolkien, The Fellowship of the Ring
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.