summaryrefslogtreecommitdiff
path: root/ext/mysqlnd
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-10-29 16:42:00 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-10-29 16:42:00 +0100
commitdd008fd1249dc63b2b98f695f154ba32f0134fff (patch)
treeac7fb38c4ddee8c5634ec9d5575a48a480445f92 /ext/mysqlnd
parent39532f9c52ef39c629deab3a30c1e56612387396 (diff)
parent8957260094f13e7ae71bba134388d9b24f0171c0 (diff)
downloadphp-git-dd008fd1249dc63b2b98f695f154ba32f0134fff.tar.gz
Merge branch 'PHP-8.0'
* PHP-8.0: Fix bug #72413: Segfault with get_result and PS cursors
Diffstat (limited to 'ext/mysqlnd')
-rw-r--r--ext/mysqlnd/mysqlnd_ps.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c
index 226a2d6e9b..55da87fdf0 100644
--- a/ext/mysqlnd/mysqlnd_ps.c
+++ b/ext/mysqlnd/mysqlnd_ps.c
@@ -151,13 +151,19 @@ MYSQLND_METHOD(mysqlnd_stmt, get_result)(MYSQLND_STMT * const s)
}
if (stmt->cursor_exists) {
- /* Silently convert buffered to unbuffered, for now */
- DBG_RETURN(s->m->use_result(s));
+ /* Prepared statement cursors are not supported as of yet */
+ char * msg;
+ mnd_sprintf(&msg, 0, "%s() cannot be used with cursors", get_active_function_name());
+ SET_CLIENT_ERROR(stmt->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, msg);
+ if (msg) {
+ mnd_sprintf_free(msg);
+ }
+ DBG_RETURN(NULL);
}
/* Nothing to store for UPSERT/LOAD DATA*/
if (GET_CONNECTION_STATE(&conn->state) != CONN_FETCHING_DATA || stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE) {
- SET_CLIENT_ERROR(conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
+ SET_CLIENT_ERROR(stmt->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync);
DBG_RETURN(NULL);
}