|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-12-10 08:24 UTC] humbads at alum dot mit dot edu
Description:
------------
php-cgi.exe crashes with an access violation when using PDO ODBC to run a simple query as given below. The code runs without error if not enclosed in a class. It also runs without error if the query is run without saving the return value in $result. The stack trace indicates a crash when destroying the implicit prepared statement.
Reproduce code:
---------------
$mc = new MyClass;
class MyClass {
function MyClass() {
$odbc = new PDO("odbc:Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=C:\\");
$query = "SELECT * FROM invoice";
$result = $odbc->query($query);
die("happy");
}
}
Expected result:
----------------
It should not crash when returning the result, or when running from within a class.
Actual result:
--------------
> ntdll.dll!_RtlEnterCriticalSection@4() + 0xb
odbc32.dll!CCriticalSection::Enter() + 0xf
odbc32.dll!_ODBCEnterCriticalSection@4() + 0xf
odbc32.dll!_EnterStmtCS@4() + 0x23
odbc32.dll!_SQLCloseCursor@4() + 0x2b
php_pdo_odbc.dll!odbc_stmt_dtor(_pdo_stmt_t * stmt=0x00720448, void * * * tsrm_ls=0x00323eb0) Line 56 C
php_pdo.dll!free_statement(_pdo_stmt_t * stmt=0x00720448, void * * * tsrm_ls=0x00323eb0) Line 2118 + 0x8 C
php_pdo.dll!php_pdo_stmt_delref(_pdo_stmt_t * stmt=0x00720448, void * * * tsrm_ls=0x00323eb0) Line 2157 + 0xb C
php_pdo.dll!pdo_dbstmt_free_storage(_pdo_stmt_t * stmt=0x00720448, void * * * tsrm_ls=0x00323eb0) Line 2162 + 0xf C
php5ts.dll!zend_objects_store_free_object_storage(_zend_objects_store * objects=0x00328dc4, void * * * tsrm_ls=0x00323eb0) Line 83 + 0xb C
php5ts.dll!shutdown_executor(void * * * tsrm_ls=0x00a232c0) Line 273 + 0x13 C
ntdll.dll!_RtlpFreeToHeapLookaside@8() + 0x26
Unhandled exception at 0x7c901010 (ntdll.dll) in php-cgi.exe: 0xC0000005: Access violation reading location 0x00000018.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 03:00:01 2025 UTC |
The same crash occurs if the code is simply within a function, rather than a class. Furthermore, the same crash occurs if another data source is used, e.g. SQL Server. myfunction(); function myfunction() { $odbc = new PDO("odbc:Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=C:\\"); $query = "SELECT * FROM invoice"; $result = $odbc->query($query); }