summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_result.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-01-13 13:22:43 +0100
committerChristoph M. Becker <cmbecker69@gmx.de>2020-01-13 13:23:12 +0100
commitb0cdd8cc53c94134d4d61829e07e38f99e73e272 (patch)
tree6c4725a534c12d70fd550ebf7659ac4662c01c2a /ext/mysqlnd/mysqlnd_result.c
parentc24789894938a8e68ac4ce4d9ae6e2d45d7ad711 (diff)
parent1752393bb4013ca94d45da5a4d43997a73ae9750 (diff)
downloadphp-git-b0cdd8cc53c94134d4d61829e07e38f99e73e272.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #79084: mysqlnd may fetch wrong column indexes with MYSQLI_BOTH
Diffstat (limited to 'ext/mysqlnd/mysqlnd_result.c')
-rw-r--r--ext/mysqlnd/mysqlnd_result.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c
index ba85ef819f..69e47759ca 100644
--- a/ext/mysqlnd/mysqlnd_result.c
+++ b/ext/mysqlnd/mysqlnd_result.c
@@ -844,8 +844,9 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row)(MYSQLND_RES * result, void
const size_t len = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
if (flags & MYSQLND_FETCH_NUM) {
- Z_TRY_ADDREF_P(data);
- zend_hash_next_index_insert(row_ht, data);
+ if (zend_hash_index_add(row_ht, i, data) != NULL) {
+ Z_TRY_ADDREF_P(data);
+ }
}
if (flags & MYSQLND_FETCH_ASSOC) {
/* zend_hash_quick_update needs length + trailing zero */
@@ -1101,8 +1102,9 @@ MYSQLND_METHOD(mysqlnd_result_buffered_zval, fetch_row)(MYSQLND_RES * result, vo
set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
if (flags & MYSQLND_FETCH_NUM) {
- Z_TRY_ADDREF_P(data);
- zend_hash_next_index_insert(Z_ARRVAL_P(row), data);
+ if (zend_hash_index_add(Z_ARRVAL_P(row), i, data) != NULL) {
+ Z_TRY_ADDREF_P(data);
+ }
}
if (flags & MYSQLND_FETCH_ASSOC) {
/* zend_hash_quick_update needs length + trailing zero */
@@ -1197,8 +1199,9 @@ MYSQLND_METHOD(mysqlnd_result_buffered_c, fetch_row)(MYSQLND_RES * result, void
set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
if (flags & MYSQLND_FETCH_NUM) {
- Z_TRY_ADDREF_P(data);
- zend_hash_next_index_insert(Z_ARRVAL_P(row), data);
+ if (zend_hash_index_add(Z_ARRVAL_P(row), i, data)) {
+ Z_TRY_ADDREF_P(data);
+ }
}
if (flags & MYSQLND_FETCH_ASSOC) {
/* zend_hash_quick_update needs length + trailing zero */