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