summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/bug77935.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqli/tests/bug77935.phpt')
-rw-r--r--ext/mysqli/tests/bug77935.phpt38
1 files changed, 38 insertions, 0 deletions
diff --git a/ext/mysqli/tests/bug77935.phpt b/ext/mysqli/tests/bug77935.phpt
new file mode 100644
index 0000000000..7a39ac0065
--- /dev/null
+++ b/ext/mysqli/tests/bug77935.phpt
@@ -0,0 +1,38 @@
+--TEST--
+Bug #77935: Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+require_once(__DIR__ . '/connect.inc');
+
+mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
+$db = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
+$db->query('DROP PROCEDURE IF EXISTS testSp');
+$db->query(<<<'SQL'
+CREATE
+ PROCEDURE `testSp`()
+ BEGIN
+ DECLARE `cur` CURSOR FOR SELECT 1;
+ OPEN `cur`;
+ CLOSE `cur`;
+ SELECT 1;
+ END;
+SQL);
+
+$stmt = $db->prepare("CALL testSp()");
+$stmt->execute();
+$result = $stmt->get_result();
+while ($row = $result->fetch_assoc()) {
+ var_dump($row);
+}
+
+?>
+--EXPECT--
+array(1) {
+ [1]=>
+ int(1)
+}