Bug #17572 Updated: Calling odbc_tables crashes
| From: | olivierS dot dagenaisP at canadaA dot comM | Date: | Sat, 20 Jul 2002 19:02:18 +0000 |
| Subject: | Bug #17572 Updated: Calling odbc_tables crashes | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-14702@lists.php.net to get a copy of this message | ||
ID: 17572
Updated by: olivierS.dagenaisP@canadaA.comM
Reported By: jma@jma.se
Status: Feedback
Bug Type: ODBC related
Operating System: W2K, FP2
PHP Version: 4.2.1
New Comment:
I'm getting the same problem, however I am running WinME and I can
reproduce the same problem with an even shorter example: (I never free
my results - it's done for you, right?)
<?php
$DB = odbc_connect ( "moo", "", "" );
$Cursor = odbc_tables ( $DB );
?>
Running this script from the command-line or from PWS (as CGI) both get
php.exe to crash. If I start extracting rows using odbc_fetch_into, I
can go through a good deal of the cursor (getting correct results - but
not all of them) until it dies the same way.
Reproduced the crash on 4.2.1 (official download), 4.2.2-dev (STABLE,
dated July 19th at snaps.php.net), 4.3.0-dev (also dated July 19th at
snaps.php.net). If it makes a difference, I'm using an Access System
data source on the same machine.
This doesn't crash on a RedHat 7.3 machine, running PHP 4.1.2 and
accessing a PostgreSQL 7.2.1 database. (not sure about the ODBC
driver, though - probably from standard RedHat install)
Last minute comment: Also reproduced the crash on a machine running
Win98SE and the same 4.3.0-dev snapshot, also with Access System DSN:
PHP caused an invalid page fault in
module <unknown> at 00de:1f8fdffc.
Registers:
EAX=00d70094 CS=0167 EIP=1f8fdffc EFLGS=00010202
EBX=00d70314 SS=016f ESP=0063f8b8 EBP=0063f8d8
ECX=00d703c0 DS=016f ESI=00d703c0 FS=6d77
EDX=01173b00 ES=016f EDI=00000001 GS=0000
Bytes at CS:EIP:
Stack dump:
1f7d7a57 00000003 0065c59c 82d50000 01173e4c 01174378 00000000 00000000
012af09c 1f7d7866 00d703c0 00000001 00000010 007604e0 01173e4c
10084f11
HTH,
- Oli
Previous Comments:
------------------------------------------------------------------------
[2002-06-24 16:39:46] kalowsky@php.net
The crash comes from your use of odbc_free_result. If you notice you
call it twice, both times trying to free the $th value. You can't
really clear out the result while still trying to read it ;) Adding
some simple printf debug statements shows this. Can you please try
this change and report back if it works or not?
Needless to say, this leads to an interesting problem which says that
this shouldn't really happen (there should be some checks on this). So
it looks like some sort of modifications will be needed to make checks
for this. Hope to see them for 4.3, but don't hold your breath very
long... I'm in the process of moving and promise nothing.
The simplified version also suffers the same problem (the
odbc_free_result while using it).
------------------------------------------------------------------------
[2002-06-14 15:01:14] grangeway@hotmail.com
A shorter version of this crash is :
$ms = odbc_connect("moo", "", "");
$th = odbc_tables ($ms);
while (odbc_fetch_row($th))
{
odbc_free_result($th);
}
------------------------------------------------------------------------
[2002-06-12 17:58:04] mwilmes@avc.edu
I've tried this on two platforms W98 using Xitami, and W2K using
iPlanet, but my bug is slightly different: My ODBC drivers don't load,
error IM003. But those ODBC drivers worked with Access and an Oracle
frontend. The W2K was a fresh install this morning with the ODBC
drivers and PHP. This problem was resolved on BOTH platforms by
retrograding to 4.2.0.
------------------------------------------------------------------------
[2002-06-05 05:25:55] jma@jma.se
Tried the php4-win32-200206031400.zip build but the excat same thing
happened :-(
/JMA
------------------------------------------------------------------------
[2002-06-03 06:29:24] derick@php.net
Can you please try a non-stable snapshot from snaps.php.net/win32 and
report back if it works?
Please do not forget to update your php4ts.dll.
Derick
------------------------------------------------------------------------
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/17572
--
Edit this bug report at http://bugs.php.net/?id=17572&edit=1