tony2001 Fri Mar 17 22:17:15 2006 UTC Modified files: /php-src/ext/pdo_pgsql pgsql_statement.c /php-src/ext/pdo_pgsql/tests bug36727.phpt Log: MFB: fix #36727 (segfault in pdo_pgsql bindValue() when no parameters are defined) http://cvs.php.net/viewcvs.cgi/php-src/ext/pdo_pgsql/pgsql_statement.c?r1=1.35&r2=1.36&diff_format=u Index: php-src/ext/pdo_pgsql/pgsql_statement.c diff -u php-src/ext/pdo_pgsql/pgsql_statement.c:1.35 php-src/ext/pdo_pgsql/pgsql_statement.c:1.36 --- php-src/ext/pdo_pgsql/pgsql_statement.c:1.35 Sun Jan 1 13:09:53 2006 +++ php-src/ext/pdo_pgsql/pgsql_statement.c Fri Mar 17 22:17:15 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql_statement.c,v 1.35 2006/01/01 13:09:53 sniper Exp $ */ +/* $Id: pgsql_statement.c,v 1.36 2006/03/17 22:17:15 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -174,7 +174,7 @@ } else { /* resolve parameter name to rewritten name */ char *nameptr; - if (SUCCESS == zend_hash_find(stmt->bound_param_map, + if (stmt->bound_param_map && SUCCESS == zend_hash_find(stmt->bound_param_map, param->name, param->namelen + 1, (void**)&nameptr)) { param->paramno = atoi(nameptr + 1) - 1; } else { http://cvs.php.net/viewcvs.cgi/php-src/ext/pdo_pgsql/tests/bug36727.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/pdo_pgsql/tests/bug36727.phpt diff -u /dev/null php-src/ext/pdo_pgsql/tests/bug36727.phpt:1.2 --- /dev/null Fri Mar 17 22:17:15 2006 +++ php-src/ext/pdo_pgsql/tests/bug36727.phpt Fri Mar 17 22:17:15 2006 @@ -0,0 +1,23 @@ +--TEST-- +Bug #36727 (segfault in bindValue() when no parameters are defined) +--SKIPIF-- +<?php +if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded'); +require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc'; +require dirname(__FILE__) . '/config.inc'; +PDOTest::skip(); +?> +--FILE-- +<?php +require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc'; +require dirname(__FILE__) . '/config.inc'; +$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt'); + +$stmt = $db->prepare('SELECT * FROM child'); +var_dump($stmt->bindValue(':test', 1, PDO::PARAM_INT)); + +echo "Done\n"; +?> +--EXPECT-- +bool(false) +Done
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php