Skip to content

Commit 15ac490

Browse files
committed
Don't update proprties inplace.
1 parent f6be108 commit 15ac490

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

ext/soap/soap.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,8 @@ PHP_METHOD(SoapFault, __toString)
941941
zend_string *str;
942942
zend_fcall_info fci;
943943
zval *this_ptr;
944+
zend_string *faultcode_val, *faultstring_val, *file_val;
945+
zend_long line_val;
944946

945947
if (zend_parse_parameters_none() == FAILURE) {
946948
return;
@@ -966,16 +968,19 @@ PHP_METHOD(SoapFault, __toString)
966968

967969
zval_ptr_dtor(&fci.function_name);
968970

969-
convert_to_string(faultcode);
970-
convert_to_string(faultstring);
971-
convert_to_string(file);
972-
convert_to_long(line);
971+
faultcode_val = zval_get_string(faultcode);
972+
faultstring_val = zval_get_string(faultstring);
973+
file_val = zval_get_string(file);
974+
line_val = zval_get_long(line);
973975
convert_to_string(&trace);
974976

975977
str = strpprintf(0, "SoapFault exception: [%s] %s in %s:%pd\nStack trace:\n%s",
976-
Z_STRVAL_P(faultcode), Z_STRVAL_P(faultstring), Z_STRVAL_P(file), Z_LVAL_P(line),
978+
ZSTR_VAL(faultcode_val), ZSTR_VAL(faultstring_val), ZSTR_VAL(file_val), line_val,
977979
Z_STRLEN(trace) ? Z_STRVAL(trace) : "#0 {main}\n");
978980

981+
zend_string_release(file_val);
982+
zend_string_release(faultstring_val);
983+
zend_string_release(faultcode_val);
979984
zval_ptr_dtor(&trace);
980985

981986
RETVAL_STR(str);

0 commit comments

Comments
 (0)