ID: 35620 Updated by: [EMAIL PROTECTED] Reported By: humbads at alum dot mit dot edu -Status: Assigned +Status: Feedback Bug Type: PDO related Operating System: Windows XP SP2 PHP Version: 5CVS-2005-12-10 (snap) Assigned To: wez New Comment:
This could be the same bug as #35552. I couldn't reproduce the issue, but did spot some code that might cause something like this to happen. Please try the next snapshot dated after this message to see if that nailed it. Previous Comments: ------------------------------------------------------------------------ [2005-12-10 08:43:54] humbads at alum dot mit dot edu 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); } ------------------------------------------------------------------------ [2005-12-10 08:24:07] 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: -------------- > [EMAIL PROTECTED]() + 0xb odbc32.dll!CCriticalSection::Enter() + 0xf [EMAIL PROTECTED]() + 0xf [EMAIL PROTECTED]() + 0x23 [EMAIL PROTECTED]() + 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 [EMAIL PROTECTED]() + 0x26 Unhandled exception at 0x7c901010 (ntdll.dll) in php-cgi.exe: 0xC0000005: Access violation reading location 0x00000018. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35620&edit=1