RE: [PECL-DEV] RE: SIGSEGV When Calling call_user_function()
| From: | Hollenbeck, Scott | Date: | Tue, 28 Apr 2015 10:46:05 +0000 |
| Subject: | RE: [PECL-DEV] RE: SIGSEGV When Calling call_user_function() | ||
| References: | 1 2 3 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-12867@lists.php.net to get a copy of this message | ||
> -----Original Message-----
> From: Johannes Schlüter [mailto:johannes@schlueters.de]
> Sent: Monday, April 27, 2015 9:44 PM
> To: Hollenbeck, Scott
> Cc: pecl-dev@lists.php.net
> Subject: Re: [PECL-DEV] RE: SIGSEGV When Calling call_user_function()
>
> 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
> (
man longjmp should work) and look at the
> zend_try/zend_first_try/zend_catch/zend_bailout implementation..
Thanks for the tip!
Scott