File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ PHPC-732: Possible mongoc_client_t use-after-free with Cursor wrapped in generator
3
+ --SKIPIF--
4
+ <?php if (PHP_VERSION_ID < 50500 ) exit ("skip PHP 5.5 is required for generators " ); ?>
5
+ <?php require __DIR__ . "/../utils/basic-skipif.inc " ; CLEANUP (STANDALONE ) ?>
6
+ --FILE--
7
+ <?php
8
+ require_once __DIR__ . "/../utils/basic.inc " ;
9
+
10
+ function wrapCursor (MongoDB \Driver \Cursor $ cursor )
11
+ {
12
+ foreach ($ cursor as $ key => $ value ) {
13
+ yield $ key => $ value ;
14
+ }
15
+ }
16
+
17
+ $ manager = new MongoDB \Driver \Manager (STANDALONE );
18
+
19
+ $ bulk = new MongoDB \Driver \BulkWrite ();
20
+ $ bulk ->insert (['_id ' => 1 ]);
21
+ $ bulk ->insert (['_id ' => 2 ]);
22
+ $ bulk ->insert (['_id ' => 3 ]);
23
+ $ manager ->executeBulkWrite (NS , $ bulk );
24
+
25
+ $ cursor = $ manager ->executeQuery (NS , new MongoDB \Driver \Query ([], ['batchSize ' => 2 ]));
26
+ $ generator = wrapCursor ($ cursor );
27
+
28
+ foreach ($ generator as $ value ) {
29
+ echo "Exiting during first iteration on generator \n" ;
30
+ exit (0 );
31
+ }
32
+
33
+ ?>
34
+ ===DONE===
35
+ <?php exit (0 ); ?>
36
+ --EXPECT--
37
+ Exiting during first iteration on generator
You can’t perform that action at this time.
0 commit comments