|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-10-30 13:40 UTC] aeryaguzov at gmail dot com
Description:
------------
Try to poll already closed connection caused segfault
Test script:
---------------
$link = new mysqli('host', 'user', 'password', 'db', 'port');
mysqli_close($link);
$read = $error = $reject = array();
$read[] = $error[] = $reject[] = $link;
mysqli_poll($read, $error, $reject, 1);
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 03:00:02 2025 UTC |
a quick fix is: diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 2b6a1af..c51fadd 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -695,6 +695,9 @@ static int mysqlnd_zval_array_from_mysqlnd_array(MYSQLND **in_array, zval *out_a { MY_MYSQL *mysql; mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*elem TSRMLS_CC); + if (!intern->ptr) { + continue; + } mysql = (MY_MYSQL *) ((MYSQLI_RESOURCE *)intern->ptr)- >ptr; if (mysql->mysql == *p) { zend_hash_next_index_insert(new_hash, (void *)elem, sizeof(zval *), (void **)&dest_elem);