Re: RE: SIGSEGV When Calling call_user_function()
| From: | Johannes Schlüter | Date: | Tue, 28 Apr 2015 01:44:00 +0000 |
| Subject: | Re: RE: SIGSEGV When Calling call_user_function() | ||
| References: | 1 2 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-12866@lists.php.net to get a copy of this message | ||
Hi,
quick comment from scrolling over the code:
On Mon, 2015-04-27 at 17:19 +0000, Hollenbeck, Scott wrote:
> else {
> php_error_docref(NULL TSRMLS_DC, E_ERROR, "Invalid callback
> parameters!");
> return;
> }
The php_error_docref call with E_ERROR will not return but bailout. Thus
the PHP script can't handle the error. Also when this happens emalloc'ed
memory will be force-freed and (while not relevant in this snippet)
system resources might not be cleaned.
I'd suggest E_WARNING.
To learn how bailout works read about longjmp in your favorite C manual
(
Attachment: [application/pgp-signature] This is a digitally signed message part signature.asc
man longjmp should work) and look at the
zend_try/zend_first_try/zend_catch/zend_bailout implementation..
johannes
Attachment: [application/pgp-signature] This is a digitally signed message part signature.asc