Skip to content

Commit 52d8955

Browse files
committed
check for NULL and avoid crashes
1 parent 63fb2b7 commit 52d8955

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

ext/soap/php_encoding.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3014,7 +3014,11 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodeP
30143014
xmlFreeNode(dummy);
30153015
} ZEND_HASH_FOREACH_END();
30163016
smart_str_0(&list);
3017-
xmlNodeSetContentLen(ret, BAD_CAST(ZSTR_VAL(list.s)), ZSTR_LEN(list.s));
3017+
if (list.s) {
3018+
xmlNodeSetContentLen(ret, BAD_CAST(ZSTR_VAL(list.s)), ZSTR_LEN(list.s));
3019+
} else {
3020+
xmlNodeSetContentLen(ret, BAD_CAST(""), 0);
3021+
}
30183022
smart_str_free(&list);
30193023
} else {
30203024
zval tmp;
@@ -3054,7 +3058,11 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodeP
30543058
start = next;
30553059
}
30563060
smart_str_0(&list);
3057-
xmlNodeSetContentLen(ret, BAD_CAST(ZSTR_VAL(list.s)), ZSTR_LEN(list.s));
3061+
if (list.s) {
3062+
xmlNodeSetContentLen(ret, BAD_CAST(ZSTR_VAL(list.s)), ZSTR_LEN(list.s));
3063+
} else {
3064+
xmlNodeSetContentLen(ret, BAD_CAST(""), 0);
3065+
}
30583066
smart_str_free(&list);
30593067
efree(str);
30603068
if (data == &tmp) {zval_dtor(&tmp);}

0 commit comments

Comments
 (0)