|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-12-08 19:08 UTC] 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
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 13:00:01 2025 UTC |
Here's the backtrace. (gdb) bt #0 0x00556716 in free () from /lib/tls/libc.so.6 #1 0x082184cd in shutdown_memory_manager (silent=0, full_shutdown=0) at /root/php/php5.1-200512091530/Zend/zend_alloc.c:512 #2 0x081f903f in php_request_shutdown (dummy=0x0) at /root/php/php5.1-200512091530/main/main.c:1303 #3 0x08280e1f in main (argc=2, argv=0xbfe192e4) at /root/php/php5.1-200512091530/sapi/cli/php_cli.c:1142 (gdb)