I am not sure how I got a crash. :) Probably it wasn't related to this bug/fix, but it was a result of another "bad" fix for the same problem.
Dmitry. > -----Original Message----- > From: Nuno Lopes [mailto:[EMAIL PROTECTED] > Sent: Friday, February 16, 2007 7:28 PM > To: Dmitry Stogov; 'Ilia Alshanetsky' > Cc: php-cvs@lists.php.net > Subject: Re: [PHP-CVS] cvs: php-src /ext/standard assert.c > basic_functions.c > > > So where is the test? *hint* :-) > > ----- Original Message ----- > > Really this patch fixes a SIGSEGV. > > I'll try to look how to optimize it. > > > > Thanks. Dmitry. > > > >> -----Original Message----- > >> From: Ilia Alshanetsky [mailto:[EMAIL PROTECTED] > >> Sent: Friday, February 16, 2007 4:47 PM > >> To: Dmitry Stogov > >> Cc: php-cvs@lists.php.net > >> Subject: Re: [PHP-CVS] cvs: php-src /ext/standard assert.c > >> basic_functions.c > >> > >> > >> Dmitry, > >> > >> Please revert this patch. The code adds RINIT that hits every > >> request > >> for functionality that is only needed for testing of the > code and is > >> otherwise rarely used. I do not believe it warrants slowing down > >> every single request, even by a little bit. > >> > >> > >> On 16-Feb-07, at 8:12 AM, Dmitry Stogov wrote: > >> > >> > dmitry Fri Feb 16 13:12:55 2007 UTC > >> > > >> > Modified files: > >> > /php-src/ext/standard assert.c basic_functions.c > >> > Log: > >> > Fixed return value of assert_options(ASSERT_CALLBACK) and > >> > possible crash (Andy Wharmby) > >> > > >> > > >> > http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c? > >> > r1=1.71&r2=1.72&diff_format=u > >> > Index: php-src/ext/standard/assert.c > >> > diff -u php-src/ext/standard/assert.c:1.71 php-src/ext/standard/ > >> > assert.c:1.72 > >> > --- php-src/ext/standard/assert.c:1.71 Mon Jan 1 09:29:30 2007 > >> > +++ php-src/ext/standard/assert.c Fri Feb 16 13:12:55 2007 > >> > @@ -16,7 +16,7 @@ > >> > > >> > > >> +------------------------------------------------------------- > >> -------- > >> > -+ > >> > */ > >> > > >> > -/* $Id: assert.c,v 1.71 2007/01/01 09:29:30 sebastian Exp $ */ > >> > +/* $Id: assert.c,v 1.72 2007/02/16 13:12:55 dmitry Exp $ */ > >> > > >> > /* {{{ includes/startup/misc */ > >> > > >> > @@ -114,6 +114,16 @@ > >> > return SUCCESS; > >> > } > >> > > >> > +PHP_RINIT_FUNCTION(assert) > >> > +{ > >> > + if (ASSERTG(cb)) { > >> > + MAKE_STD_ZVAL(ASSERTG(callback)); > ZVAL_STRING(ASSERTG(callback), > >> > +ASSERTG(cb), 1); } > >> > + > >> > + return SUCCESS; > >> > +} > >> > + > >> > PHP_RSHUTDOWN_FUNCTION(assert) > >> > { > >> > if (ASSERTG(callback)) { > >> > @@ -202,11 +212,6 @@ > >> > RETURN_TRUE; > >> > } > >> > > >> > - if (!ASSERTG(callback) && ASSERTG(cb)) { > >> > - MAKE_STD_ZVAL(ASSERTG(callback)); > >> > - ZVAL_STRING(ASSERTG(callback), ASSERTG(cb), 1); > >> > - } > >> > - > >> > if (ASSERTG(callback)) { > >> > zval *args[3]; > >> > zval *retval; > >> > @@ -309,6 +314,11 @@ > >> > break; > >> > > >> > case ASSERT_CALLBACK: > >> > + if (ASSERTG(callback) != NULL) { > RETVAL_ZVAL(ASSERTG(callback), > >> > + 1, 0); } else { > >> > + RETVAL_NULL(); > >> > + } > >> > if (ac == 2) { > >> > if (ASSERTG(callback)) { zval_ptr_dtor(&ASSERTG(callback)); > >> > @@ -316,7 +326,7 @@ > >> > ASSERTG(callback) = *value; > >> > zval_add_ref(value); > >> > } > >> > - RETURN_TRUE; > >> > + return; > >> > break; > >> > > >> > default: http://cvs.php.net/viewvc.cgi/php-src/ext/standard/ > >> > basic_functions.c?r1=1.846&r2=1.847&diff_format=u > >> > Index: php-src/ext/standard/basic_functions.c > >> > diff -u php-src/ext/standard/basic_functions.c:1.846 > php-src/ext/ > >> > standard/basic_functions.c:1.847 > >> > --- php-src/ext/standard/basic_functions.c:1.846 Thu Feb 8 > >> > 15:31:01 2007 > >> > +++ php-src/ext/standard/basic_functions.c Fri Feb 16 > 13:12:55 2007 > >> > @@ -17,7 +17,7 @@ > >> > > >> > > >> +------------------------------------------------------------- > >> -------- > >> > -+ > >> > */ > >> > > >> > -/* $Id: basic_functions.c,v 1.846 2007/02/08 15:31:01 > >> helly Exp $ */ > >> > +/* $Id: basic_functions.c,v 1.847 2007/02/16 13:12:55 > >> dmitry Exp $ */ > >> > > >> > #include "php.h" > >> > #include "php_streams.h" > >> > @@ -4147,6 +4147,7 @@ > >> > #ifdef HAVE_SYSLOG_H > PHP_RINIT(syslog)(INIT_FUNC_ARGS_PASSTHRU); > >> > #endif > >> > + PHP_RINIT(assert) (INIT_FUNC_ARGS_PASSTHRU); > >> > PHP_RINIT(dir)(INIT_FUNC_ARGS_PASSTHRU); > >> > PHP_RINIT(url_scanner_ex)(INIT_FUNC_ARGS_PASSTHRU); > >> > > >> > > >> > -- > >> > PHP CVS Mailing List (http://www.php.net/) > >> > To unsubscribe, visit: http://www.php.net/unsub.php > >> > > >> > >> Ilia Alshanetsky > > -- > PHP CVS Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php