Skip to content

Commit 0cb33f6

Browse files
committed
Merge branch 'v1.4'
2 parents eab4a21 + 57d3f6e commit 0cb33f6

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

src/MongoDB/Cursor.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ static HashTable* php_phongo_cursor_get_debug_info(zval* object, int* is_temp TS
510510
if (!Z_ISUNDEF(intern->visitor_data.zchild)) {
511511
#if PHP_VERSION_ID >= 70000
512512
ADD_ASSOC_ZVAL_EX(&retval, "currentDocument", &intern->visitor_data.zchild);
513-
/*Z_ADDREF(intern->visitor_data.zchild);*/
513+
Z_ADDREF(intern->visitor_data.zchild);
514514
#else
515515
ADD_ASSOC_ZVAL_EX(&retval, "currentDocument", intern->visitor_data.zchild);
516516
Z_ADDREF_P(intern->visitor_data.zchild);

tests/cursor/bug1162-001.phpt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
--TEST--
2+
MongoDB\Driver\Cursor segfault dumping cursor while iterating with IteratorIterator
3+
--SKIPIF--
4+
<?php require __DIR__ . "/" ."../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); ?>
6+
<?php CLEANUP(STANDALONE); ?>
7+
--FILE--
8+
<?php
9+
require_once __DIR__ . "/../utils/basic.inc";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
13+
$bulk = new MongoDB\Driver\BulkWrite;
14+
$bulk->insert(['_id' => 1]);
15+
$bulk->insert(['_id' => 2]);
16+
$bulk->insert(['_id' => 3]);
17+
$manager->executeBulkWrite(NS, $bulk);
18+
19+
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);
20+
21+
$cursor = $manager->executeQuery(NS, $query);
22+
23+
$iterator = new IteratorIterator($cursor);
24+
$iterator->rewind();
25+
var_dump($cursor);
26+
27+
$iterator->next();
28+
var_dump($cursor);
29+
30+
$iterator->next();
31+
var_dump($cursor);
32+
33+
?>
34+
===DONE===
35+
<?php exit(0); ?>
36+
--EXPECTF--
37+
object(MongoDB\Driver\Cursor)#%d (%d) {%A
38+
}
39+
object(MongoDB\Driver\Cursor)#%d (%d) {%A
40+
}
41+
object(MongoDB\Driver\Cursor)#%d (%d) {%A
42+
}
43+
===DONE===

0 commit comments

Comments
 (0)