ID: 35604 Updated by: [EMAIL PROTECTED] Reported By: smlerman at gmail dot com -Status: Open +Status: Feedback Bug Type: PDO related Operating System: Linux PHP Version: 5.1.1 New Comment:
Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2005-12-09 17:53:52] smlerman at gmail dot com Tried the same code on my Linux box at home (Fedora Core 2, first test server I believe is Fedora 4), and it just gives a segmentation fault instead. Tried the php5.1-200512091530 snapshot, and I get the same results. ------------------------------------------------------------------------ [2005-12-08 19:16:57] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.1-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.1-win32-latest.zip ------------------------------------------------------------------------ [2005-12-08 19:08:57] smlerman at gmail dot com Description: ------------ PHP crashes on the following code. Changing the second named marker from :foo1 to :foo2 fixes the crash, which made me think it had to do with duplicate names. However, removing the where clause (leaving both name markers :foo1) also eliminates the crash, though the statement gets an error code of "HY093" (no full message). Reproduce code: --------------- <?php $db = new PDO("pgsql:host=localhost dbname=name user=user password=password"); $stmt = $db->prepare("UPDATE test SET foo1 = :foo1, foo2 = :foo1 WHERE foo1 = :id"); $stmt->bindParam(':foo1', $foo1); $stmt->bindParam(':foo2', $foo2); $stmt->bindParam(':id', $id); $foo1 = "foo"; $foo2 = "foo"; $id = "foo"; var_dump($stmt->errorInfo()); $stmt->execute(); ?> Expected result: ---------------- An error message of some kind if duplicate names aren't allowed, but certainly not a memory dump. Actual result: -------------- *** glibc detected *** php: free(): invalid next size (fast): 0x09980018 *** Followed by a backtrace and memory dump ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35604&edit=1