From: [EMAIL PROTECTED]
Operating system: Win98
PHP version: 4.0.5
PHP Bug Type: InterBase related
Bug description: Crash when calling ibase_trans with invalid link ID
Calling ibase_trans in the following example causes PHP to fault when the link ID is
invalid (i.e. the database file isn't found.)
<?
$dbh = ibase_pconnect( "Localhost:c:\\file_not_found.gdb", "user", "password"
);
$trh = ibase_trans( IBASE_DEFAULT, $dbh );
?>
Configuration:
Win98
PHP 4.0.5
Interbase WI-V6.0.1.0
Apache 1.3.19
A selected portion of the Dr. Watson log is below:
Command line: "C:\TOOLS\APACHE\APACHE\APACHE.EXE" -Z ap-839867_C1 -f
"c:/tools/apache/apache/conf/httpd.conf" "-w" "-f"
"C:\TOOLS\apache\Apache\conf\httpd.conf" "-d" "C:\TOOLS\apache\Apache""
Trap 0e 0000 - Invalid page fault
eax=00000000 ebx=00000000 ecx=00000010 edx=00000010 esi=00000000 edi=00000002
eip=40545c8a esp=0215f760 ebp=0215f81c -- -- -- nv up EI pl ZR na PE nc
cs=0177 ss=017f ds=017f es=017f fs=5277 gs=0000
GDS32.DLL:.text+0x14c8a:
>0177:40545c8a 8a02 mov al,byte ptr [edx]
sel type base lim/bot
---- ---- -------- --------
cs 0177 r-x- 00000000 ffffffff
ss 017f rw-e 00000000 0000a300
ds 017f rw-e 00000000 0000a300
es 017f rw-e 00000000 0000a300
fs 5277 rw-- 8197ff30 00000037
gs 0000 ----
stack base: 02060000
TIB limits: 0215a000 - 02160000
-- exception record --
Exception Code: c0000005 (access violation)
Exception Address: 40545c8a (GDS32.DLL:.text+0x14c8a)
Exception Info: 00000000
ffffffff
GDS32.DLL:.text+0x14c8a:
>0177:40545c8a 8a02 mov al,byte ptr [edx]
0177:40545c64 3bc1 cmp eax,ecx
0177:40545c66 0f8d15020000 jge 40545e81 = GDS32.DLL:.text+0x14e81
0177:40545c6c 8b5514 mov edx,dword ptr [ebp+14]
0177:40545c6f 8b02 mov eax,dword ptr [edx]
0177:40545c71 8b08 mov ecx,dword ptr [eax]
0177:40545c73 898d4cffffff mov dword ptr [ebp-000000b4],ecx
0177:40545c79 83bd4cffffff00 cmp dword ptr [ebp-000000b4],+00
0177:40545c80 740f jz 40545c91 = GDS32.DLL:.text+0x14c91
0177:40545c82 8b954cffffff mov edx,dword ptr [ebp-000000b4]
0177:40545c88 33c0 xor eax,eax
GDS32.DLL:.text+0x14c8a:
*0177:40545c8a 8a02 mov al,byte ptr [edx]
0177:40545c8c 83f801 cmp eax,+01
0177:40545c8f 7451 jz 40545ce2 = GDS32.DLL:.text+0x14ce2
0177:40545c91 8b8d48ffffff mov ecx,dword ptr [ebp-000000b8]
0177:40545c97 894df4 mov dword ptr [ebp-0c],ecx
0177:40545c9a 8b55f4 mov edx,dword ptr [ebp-0c]
0177:40545c9d c70201000000 mov dword ptr [edx],00000001
0177:40545ca3 8b45f4 mov eax,dword ptr [ebp-0c]
0177:40545ca6 83c004 add eax,+04
0177:40545ca9 8945f4 mov dword ptr [ebp-0c],eax
0177:40545cac 8b4df4 mov ecx,dword ptr [ebp-0c]
--------------------
-- stack summary --
017f:0215f81c 0177:40545c8a GDS32.DLL:.text+0x14c8a
(007c1330,007cb520,00000001,0215f834,
007cb548,00000000,00000000,0215f91d)
017f:0215f904 0177:40546044 GDS32.DLL:.text+0x15044
(007c1330,007cb520,00000001,007cb548,
00000000,00000000,00000001,00000000)
-- stack trace --
017f:0215f81c 0177:40545c8a GDS32.DLL:.text+0x14c8a
(007c1330,007cb520,00000001,0215f834,
007cb548,00000000,00000000,0215f91d)
0177:40545c64 3bc1 cmp eax,ecx
0177:40545c66 0f8d15020000 jge 40545e81 = GDS32.DLL:.text+0x14e81
0177:40545c6c 8b5514 mov edx,dword ptr [ebp+14]
0177:40545c6f 8b02 mov eax,dword ptr [edx]
0177:40545c71 8b08 mov ecx,dword ptr [eax]
0177:40545c73 898d4cffffff mov dword ptr [ebp-000000b4],ecx
0177:40545c79 83bd4cffffff00 cmp dword ptr [ebp-000000b4],+00
0177:40545c80 740f jz 40545c91 = GDS32.DLL:.text+0x14c91
0177:40545c82 8b954cffffff mov edx,dword ptr [ebp-000000b4]
0177:40545c88 33c0 xor eax,eax
GDS32.DLL:.text+0x14c8a:
*0177:40545c8a 8a02 mov al,byte ptr [edx]
0177:40545c8c 83f801 cmp eax,+01
0177:40545c8f 7451 jz 40545ce2 = GDS32.DLL:.text+0x14ce2
0177:40545c91 8b8d48ffffff mov ecx,dword ptr [ebp-000000b8]
0177:40545c97 894df4 mov dword ptr [ebp-0c],ecx
0177:40545c9a 8b55f4 mov edx,dword ptr [ebp-0c]
0177:40545c9d c70201000000 mov dword ptr [edx],00000001
0177:40545ca3 8b45f4 mov eax,dword ptr [ebp-0c]
0177:40545ca6 83c004 add eax,+04
0177:40545ca9 8945f4 mov dword ptr [ebp-0c],eax
0177:40545cac 8b4df4 mov ecx,dword ptr [ebp-0c]
--------------------
017f:0215f904 0177:40546044 GDS32.DLL:.text+0x15044
(007c1330,007cb520,00000001,007cb548,
00000000,00000000,00000001,00000000)
0177:4054602b 894df4 mov dword ptr [ebp-0c],ecx
0177:4054602e 8b55f4 mov edx,dword ptr [ebp-0c]
0177:40546031 52 push edx
0177:40546032 668b4510 mov ax,word ptr [ebp+10]
0177:40546036 50 push eax
0177:40546037 8b4d0c mov ecx,dword ptr [ebp+0c]
0177:4054603a 51 push ecx
0177:4054603b 8b5508 mov edx,dword ptr [ebp+08]
0177:4054603e 52 push edx
0177:4054603f e85efbffff call 40545ba2 = GDS32.DLL!isc_start_multiple
GDS32.DLL:.text+0x15044:
*0177:40546044 8945f0 mov dword ptr [ebp-10],eax
0177:40546047 8b45f4 mov eax,dword ptr [ebp-0c]
0177:4054604a 8d8d30ffffff lea ecx,[ebp-000000d0]
0177:40546050 3bc1 cmp eax,ecx
0177:40546052 740c jz 40546060 = GDS32.DLL:.text+0x15060
0177:40546054 8b55f4 mov edx,dword ptr [ebp-0c]
0177:40546057 52 push edx
0177:40546058 e8b8060000 call 40546715 = GDS32.DLL:.text+0x15715
0177:4054605d 83c404 add esp,+04
0177:40546060 8b45f0 mov eax,dword ptr [ebp-10]
0177:40546063 8be5 mov esp,ebp
--------------------
--
Edit Bug report at: http://bugs.php.net/?id=10816&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]