mirror of
https://github.com/php/php-src.git
synced 2024-09-24 11:27:28 +00:00
- Fixed bug #46388 (stream_notification_callback inside of object destroys object variables)
This commit is contained in:
parent
1699efd72b
commit
912470c7d8
@ -871,12 +871,13 @@ static void user_space_stream_notifier(php_stream_context *context, int notifyco
|
||||
INIT_ZVAL(zvs[i]);
|
||||
ps[i] = &zvs[i];
|
||||
ptps[i] = &ps[i];
|
||||
MAKE_STD_ZVAL(ps[i]);
|
||||
}
|
||||
|
||||
ZVAL_LONG(ps[0], notifycode);
|
||||
ZVAL_LONG(ps[1], severity);
|
||||
if (xmsg) {
|
||||
ZVAL_RT_STRING(ps[2], xmsg, ZSTR_AUTOFREE);
|
||||
ZVAL_RT_STRING(ps[2], xmsg, ZSTR_DUPLICATE);
|
||||
} else {
|
||||
ZVAL_NULL(ps[2]);
|
||||
}
|
||||
@ -887,6 +888,9 @@ static void user_space_stream_notifier(php_stream_context *context, int notifyco
|
||||
if (FAILURE == call_user_function_ex(EG(function_table), NULL, callback, &retval, 6, ptps, 0, NULL TSRMLS_CC)) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed to call user notifier");
|
||||
}
|
||||
for (i = 0; i < 6; i++) {
|
||||
zval_ptr_dtor(&ps[i]);
|
||||
}
|
||||
if (retval) {
|
||||
zval_ptr_dtor(&retval);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user