Skip to content

Commit 39884bb

Browse files
committed
Fix #78666 mysqli_options generates Warning on var_dump()
1 parent 5215f07 commit 39884bb

File tree

9 files changed

+98
-139
lines changed

9 files changed

+98
-139
lines changed

ext/mysqli/mysqli.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ zend_class_entry *mysqli_warning_class_entry;
6969
zend_class_entry *mysqli_exception_class_entry;
7070

7171

72-
typedef zval *(*mysqli_read_t)(mysqli_object *obj, zval *rv);
72+
typedef int (*mysqli_read_t)(mysqli_object *obj, zval *rv);
7373
typedef int (*mysqli_write_t)(mysqli_object *obj, zval *newval);
7474

7575
typedef struct _mysqli_prop_handler {
@@ -281,17 +281,19 @@ static void mysqli_warning_free_storage(zend_object *object)
281281
/* }}} */
282282

283283
/* {{{ mysqli_read_na */
284-
static zval *mysqli_read_na(mysqli_object *obj, zval *retval)
284+
static int mysqli_read_na(mysqli_object *obj, zval *retval)
285285
{
286286
zend_throw_error(NULL, "Cannot read property");
287-
return NULL;
287+
288+
return FAILURE;
288289
}
289290
/* }}} */
290291

291292
/* {{{ mysqli_write_na */
292293
static int mysqli_write_na(mysqli_object *obj, zval *newval)
293294
{
294295
zend_throw_error(NULL, "Cannot write property");
296+
295297
return FAILURE;
296298
}
297299
/* }}} */
@@ -320,8 +322,9 @@ zval *mysqli_read_property(zval *object, zval *member, int type, void **cache_sl
320322
}
321323

322324
if (hnd) {
323-
retval = hnd->read_func(obj, rv);
324-
if (retval == NULL) {
325+
if (hnd->read_func(obj, rv) == SUCCESS || type != BP_VAR_IS) {
326+
retval = rv;
327+
} else {
325328
retval = &EG(uninitialized_zval);
326329
}
327330
} else {
@@ -428,19 +431,26 @@ HashTable *mysqli_object_get_debug_info(zval *object, int *is_temp)
428431
mysqli_object *obj = Z_MYSQLI_P(object);
429432
HashTable *retval, *props = obj->prop_handler;
430433
mysqli_prop_handler *entry;
434+
int er;
431435

432436
retval = zend_new_array(zend_hash_num_elements(props) + 1);
433437

438+
er = EG(error_reporting);
439+
EG(error_reporting) = 0;
440+
434441
ZEND_HASH_FOREACH_PTR(props, entry) {
435442
zval rv, member;
436443
zval *value;
437444
ZVAL_STR(&member, entry->name);
445+
438446
value = mysqli_read_property(object, &member, BP_VAR_IS, 0, &rv);
439447
if (value != &EG(uninitialized_zval)) {
440448
zend_hash_add(retval, Z_STR(member), value);
441449
}
442450
} ZEND_HASH_FOREACH_END();
443451

452+
EG(error_reporting) = er;
453+
444454
*is_temp = 1;
445455
return retval;
446456
}

ext/mysqli/mysqli_driver.c

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
#include "mysqli_fe.h"
3131

3232
#define MAP_PROPERTY_MYG_BOOL_READ(name, value) \
33-
static zval *name(mysqli_object *obj, zval *retval) \
33+
static int name(mysqli_object *obj, zval *retval) \
3434
{ \
3535
ZVAL_BOOL(retval, MyG(value)); \
36-
return retval; \
36+
return SUCCESS; \
3737
} \
3838

3939
#define MAP_PROPERTY_MYG_BOOL_WRITE(name, value) \
@@ -44,10 +44,10 @@ static int name(mysqli_object *obj, zval *value) \
4444
} \
4545

4646
#define MAP_PROPERTY_MYG_LONG_READ(name, value) \
47-
static zval *name(mysqli_object *obj, zval *retval) \
47+
static int name(mysqli_object *obj, zval *retval) \
4848
{ \
4949
ZVAL_LONG(retval, MyG(value)); \
50-
return retval; \
50+
return SUCCESS; \
5151
} \
5252

5353
#define MAP_PROPERTY_MYG_LONG_WRITE(name, value) \
@@ -58,10 +58,10 @@ static int name(mysqli_object *obj, zval *value) \
5858
} \
5959

6060
#define MAP_PROPERTY_MYG_STRING_READ(name, value) \
61-
static zval *name(mysqli_object *obj, zval *retval) \
61+
static int name(mysqli_object *obj, zval *retval) \
6262
{ \
6363
ZVAL_STRING(retval, MyG(value)); \
64-
return retval; \
64+
return SUCESS; \
6565
} \
6666

6767
#define MAP_PROPERTY_MYG_STRING_WRITE(name, value) \
@@ -82,34 +82,38 @@ static int driver_report_write(mysqli_object *obj, zval *value)
8282
/* }}} */
8383

8484
/* {{{ property driver_embedded_read */
85-
static zval *driver_embedded_read(mysqli_object *obj, zval *retval)
85+
static int driver_embedded_read(mysqli_object *obj, zval *retval)
8686
{
8787
ZVAL_FALSE(retval);
88-
return retval;
88+
89+
return SUCCESS;
8990
}
9091
/* }}} */
9192

9293
/* {{{ property driver_client_version_read */
93-
static zval *driver_client_version_read(mysqli_object *obj, zval *retval)
94+
static int driver_client_version_read(mysqli_object *obj, zval *retval)
9495
{
9596
ZVAL_LONG(retval, MYSQL_VERSION_ID);
96-
return retval;
97+
98+
return SUCCESS;
9799
}
98100
/* }}} */
99101

100102
/* {{{ property driver_client_info_read */
101-
static zval *driver_client_info_read(mysqli_object *obj, zval *retval)
103+
static int driver_client_info_read(mysqli_object *obj, zval *retval)
102104
{
103105
ZVAL_STRING(retval, (char *)mysql_get_client_info());
104-
return retval;
106+
107+
return SUCCESS;
105108
}
106109
/* }}} */
107110

108111
/* {{{ property driver_driver_version_read */
109-
static zval *driver_driver_version_read(mysqli_object *obj, zval *retval)
112+
static int driver_driver_version_read(mysqli_object *obj, zval *retval)
110113
{
111114
ZVAL_LONG(retval, MYSQLI_VERSION_ID);
112-
return retval;
115+
116+
return SUCCESS;
113117
}
114118
/* }}} */
115119

0 commit comments

Comments
 (0)