diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2020-10-29 16:42:00 +0100 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-10-29 16:42:00 +0100 |
| commit | dd008fd1249dc63b2b98f695f154ba32f0134fff (patch) | |
| tree | ac7fb38c4ddee8c5634ec9d5575a48a480445f92 /ext/mysqlnd | |
| parent | 39532f9c52ef39c629deab3a30c1e56612387396 (diff) | |
| parent | 8957260094f13e7ae71bba134388d9b24f0171c0 (diff) | |
| download | php-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.c | 12 |
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); } |
