#22403 [Ana->Asn]: PHP crashes when executing a sql procedure without parameters

From: Date: Fri, 02 May 2003 01:21:48 +0000
Subject: #22403 [Ana->Asn]: PHP crashes when executing a sql procedure without parameters
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-38919@lists.php.net to get a copy of this message
ID: 22403 Updated by: sniper@php.net Reported By: cesararnold at yahoo dot com dot br -Status: Analyzed +Status: Assigned Bug Type: Sybase-ct (ctlib) related Operating System: * PHP Version: 4.3.2-dev Assigned To: thekid Previous Comments: ------------------------------------------------------------------------ [2003-04-22 08:50:30] cesararnold at yahoo dot com dot br Great ! We'll wait for you. Thanks. ------------------------------------------------------------------------ [2003-04-18 20:37:54] thekid@php.net Have been able to reproduce with sybase libraries. As these are not available on FreeBSD, I use FreeTDS, which does not produce a status result in this situation ("return status = -6") but rather issues a "CS_CMD_FAIL" instantly. I know where the problem is (php_sybase_finish_results), fixing it is not trivial though (I've already given it a first shot but gave up after the supposed fix caused a segfault in another place:)). I'll do my best and see if I can include the fix in 4.3.2. ------------------------------------------------------------------------ [2003-04-14 20:55:39] cesararnold at yahoo dot com dot br Bingo ! The output is below: PHP Version: 4.3.2-dev OS : Windows NT SAO-IRINEU 5.0 build 2195 SAPI : isapi Sybase : Adaptive Server Enterprise/11.9.2/1075/P/Linux Intel/Linux 2.2.5 i586/OPT/Mon Jul 12 09:51:46 1999 ------------------------------------------------------------------------ >>> Query: exec tempdb..test *** Caught Sybase Server Message #201 [Severity 16, state 2] at line 0 'Procedure test expects parameter @param, which was not supplied.' PHP has encountered an Access Violation at 01EB36C9 At this point the PHP stopped and IIS too, exactly as we have posted. It was necessary to stop and restart the www service manually. Thanks again for your great help. ------------------------------------------------------------------------ [2003-04-12 10:27:51] thekid@php.net Can you show me the output of this script: <?php /* Test script for http://bugs.php.net/bug.php?id=22403 * * SQL needed * ========== * use tempdb * go * create proc test (@param int) * as * begin * select @param * select @param + 1 * return @param * end * go */ header('Content-type: text/plain'); error_reporting(E_ALL); function sybase_message($msgnumber, $severity, $state, $line, $text) { printf( "*** Caught Sybase Server Message #%d [Severity %d, state %d] at line %d\n '%s'\n", $msgnumber, $severity, $state, $line, chop($text) ); } function sybase_exec() { echo str_repeat('-', 72)."\n"; $args= func_get_args(); $query= array_shift($args); foreach ($args as $arg) { $query.= ' '.((NULL === $arg) ? 'NULL' : $arg); } printf(">>> Query: %s\n", $query); flush(); $h= sybase_query($query); printf("<<< Return: %s\n", var_export(is_resource($h), 1)); flush(); if (!$h) return; while ($data= sybase_fetch_assoc($h)) { var_dump($data); flush(); } } sybase_set_message_handler('sybase_message'); sybase_min_server_severity(11); sybase_connect('...', '...', '...'); // FILL IN PLEASE:) printf( "PHP Version: %s\n". "OS : %s\n". "SAPI : %s\n". "Sybase : %s\n", phpversion(), php_uname(), PHP_SAPI, array_shift(sybase_fetch_row(sybase_query('select @@version'))) ); sybase_exec('exec tempdb..test'); sybase_exec('exec tempdb..test', NULL); sybase_exec('exec tempdb..test', 1); sybase_exec('exec tempdb..test', 'foo'); printf("\n===> Done\n"); ?> ------------------------------------------------------------------------ [2003-03-28 14:54:50] cesararnold at yahoo dot com dot br Hi, first of all, thanks for your tests... I'm sorry but I forgot to say that it's happening on IIS 5.0, not on Apache. Thanks again. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22403 -- Edit this bug report at http://bugs.php.net/?id=22403&edit=1

« previous php.bugs (#38919) next »