Skip to content

Commit ffaf8be

Browse files
committed
Fixed segfault
1 parent 049e52f commit ffaf8be

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

ext/mysqlnd/mysqlnd_result.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row_c)(MYSQLND_RES * result, voi
787787

788788
for (i = 0; i < field_count; i++, field++) {
789789
zval * data = &result->unbuf->last_row_data[i];
790-
unsigned int len = (Z_TYPE_P(data) == IS_NULL)? 0:Z_STRLEN_P(data);
790+
unsigned int len = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
791791

792792
/* BEGIN difference between normal normal fetch and _c */
793793
if (Z_TYPE_P(data) != IS_NULL) {
@@ -905,7 +905,7 @@ MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row)(MYSQLND_RES * result, void
905905

906906
for (i = 0; i < field_count; i++, field++) {
907907
zval * data = &result->unbuf->last_row_data[i];
908-
unsigned int len = (Z_TYPE_P(data) == IS_NULL)? 0:Z_STRLEN_P(data);
908+
unsigned int len = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
909909

910910
if (flags & MYSQLND_FETCH_NUM) {
911911
Z_TRY_ADDREF_P(data);
@@ -1070,7 +1070,7 @@ MYSQLND_METHOD(mysqlnd_result_buffered, fetch_row_c)(MYSQLND_RES * result, void
10701070
for (i = 0; i < field_count; i++) {
10711071
zval * data = &current_row[i];
10721072

1073-
set->lengths[i] = (Z_TYPE_P(data) == IS_NULL)? 0:Z_STRLEN_P(data);
1073+
set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
10741074

10751075
if (Z_TYPE_P(data) != IS_NULL) {
10761076
convert_to_string(data);
@@ -1158,7 +1158,7 @@ MYSQLND_METHOD(mysqlnd_result_buffered_zval, fetch_row)(MYSQLND_RES * result, vo
11581158
for (i = 0; i < field_count; i++) {
11591159
zval * data = &current_row[i];
11601160

1161-
set->lengths[i] = (Z_TYPE_P(data) == IS_NULL)? 0:Z_STRLEN_P(data);
1161+
set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
11621162

11631163
if (flags & MYSQLND_FETCH_NUM) {
11641164
Z_TRY_ADDREF_P(data);
@@ -1254,7 +1254,7 @@ MYSQLND_METHOD(mysqlnd_result_buffered_c, fetch_row)(MYSQLND_RES * result, void
12541254
for (i = 0; i < field_count; i++) {
12551255
zval * data = &current_row[i];
12561256

1257-
set->lengths[i] = (Z_TYPE_P(data) == IS_NULL)? 0:Z_STRLEN_P(data);
1257+
set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
12581258

12591259
if (flags & MYSQLND_FETCH_NUM) {
12601260
Z_TRY_ADDREF_P(data);

0 commit comments

Comments
 (0)