[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard assert.c basic_functions.c
dmitry Fri Feb 16 13:12:10 2007 UTC Modified files: (Branch: PHP_5_2) /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.60.2.3.2.4r2=1.60.2.3.2.5diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.60.2.3.2.4 php-src/ext/standard/assert.c:1.60.2.3.2.5 --- php-src/ext/standard/assert.c:1.60.2.3.2.4 Mon Jan 1 09:36:08 2007 +++ php-src/ext/standard/assert.c Fri Feb 16 13:12:10 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: assert.c,v 1.60.2.3.2.4 2007/01/01 09:36:08 sebastian Exp $ */ +/* $Id: assert.c,v 1.60.2.3.2.5 2007/02/16 13:12:10 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)) { @@ -187,11 +197,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; @@ -286,6 +291,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)); @@ -293,7 +303,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.725.2.31.2.39r2=1.725.2.31.2.40diff_format=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.39 php-src/ext/standard/basic_functions.c:1.725.2.31.2.40 --- php-src/ext/standard/basic_functions.c:1.725.2.31.2.39 Mon Jan 1 09:36:08 2007 +++ php-src/ext/standard/basic_functions.c Fri Feb 16 13:12:10 2007 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: basic_functions.c,v 1.725.2.31.2.39 2007/01/01 09:36:08 sebastian Exp $ */ +/* $Id: basic_functions.c,v 1.725.2.31.2.40 2007/02/16 13:12:10 dmitry Exp $ */ #include php.h #include php_streams.h @@ -4132,6 +4132,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
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard assert.c basic_functions.c
dmitry Fri Feb 16 16:35:04 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard assert.c basic_functions.c Log: Optimize out RINIT() http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c?r1=1.60.2.3.2.5r2=1.60.2.3.2.6diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.60.2.3.2.5 php-src/ext/standard/assert.c:1.60.2.3.2.6 --- php-src/ext/standard/assert.c:1.60.2.3.2.5 Fri Feb 16 13:12:10 2007 +++ php-src/ext/standard/assert.c Fri Feb 16 16:35:04 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: assert.c,v 1.60.2.3.2.5 2007/02/16 13:12:10 dmitry Exp $ */ +/* $Id: assert.c,v 1.60.2.3.2.6 2007/02/16 16:35:04 dmitry Exp $ */ /* {{{ includes/startup/misc */ @@ -114,16 +114,6 @@ 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)) { @@ -197,6 +187,11 @@ 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; @@ -293,6 +288,8 @@ case ASSERT_CALLBACK: if (ASSERTG(callback) != NULL) { RETVAL_ZVAL(ASSERTG(callback), 1, 0); + } else if (ASSERTG(cb)) { + RETVAL_STRING(ASSERTG(cb), 1); } else { RETVAL_NULL(); } http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.725.2.31.2.40r2=1.725.2.31.2.41diff_format=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.40 php-src/ext/standard/basic_functions.c:1.725.2.31.2.41 --- php-src/ext/standard/basic_functions.c:1.725.2.31.2.40 Fri Feb 16 13:12:10 2007 +++ php-src/ext/standard/basic_functions.c Fri Feb 16 16:35:04 2007 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: basic_functions.c,v 1.725.2.31.2.40 2007/02/16 13:12:10 dmitry Exp $ */ +/* $Id: basic_functions.c,v 1.725.2.31.2.41 2007/02/16 16:35:04 dmitry Exp $ */ #include php.h #include php_streams.h @@ -4132,7 +4132,6 @@ #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
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard assert.c /ext/standard/tests/assert assert02.phpt
nlopess Sat Jul 1 12:21:07 2006 UTC Added files: (Branch: PHP_5_2) /php-src/ext/standard/tests/assert assert02.phpt Modified files: /php-src/ext/standard assert.c Log: fixed segfaults and such things within the new assert02.phpt test http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c?r1=1.60.2.3.2.1r2=1.60.2.3.2.2diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.60.2.3.2.1 php-src/ext/standard/assert.c:1.60.2.3.2.2 --- php-src/ext/standard/assert.c:1.60.2.3.2.1 Fri Jun 23 11:37:53 2006 +++ php-src/ext/standard/assert.c Sat Jul 1 12:21:07 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: assert.c,v 1.60.2.3.2.1 2006/06/23 11:37:53 iliaa Exp $ */ +/* $Id: assert.c,v 1.60.2.3.2.2 2006/07/01 12:21:07 nlopess Exp $ */ /* {{{ includes/startup/misc */ @@ -152,7 +152,10 @@ if (zend_eval_string(myeval, retval, compiled_string_description TSRMLS_CC) == FAILURE) { efree(compiled_string_description); php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); - /* php_error_docref() does not return in this case. */ + if (ASSERTG(bail)) { + zend_bailout(); + } + RETURN_FALSE; } efree(compiled_string_description); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/assert/assert02.phpt?view=markuprev=1.1 Index: php-src/ext/standard/tests/assert/assert02.phpt +++ php-src/ext/standard/tests/assert/assert02.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard assert.c
It will still return and terminate the function, it just will not necessarily terminate the PHP script execution. On 23-Jun-06, at 1:59 PM, Andrey Hristov wrote: Hi Ilia, Ilia Alshanetsky wrote: iliaa Fri Jun 23 11:37:53 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard assert.c Log: Change E_ERROR to E_RECOVERABLE_ERROR http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c? r1=1.60.2.3r2=1.60.2.3.2.1diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.60.2.3 php-src/ext/ standard/assert.c:1.60.2.3.2.1 --- php-src/ext/standard/assert.c:1.60.2.3 Sun Jan 1 12:50:14 2006 +++ php-src/ext/standard/assert.c Fri Jun 23 11:37:53 2006 @@ -16,7 +16,7 @@ + --+ */ -/* $Id: assert.c,v 1.60.2.3 2006/01/01 12:50:14 sniper Exp $ */ +/* $Id: assert.c,v 1.60.2.3.2.1 2006/06/23 11:37:53 iliaa Exp $ */ /* {{{ includes/startup/misc */ @@ -151,7 +151,7 @@ compiled_string_description = zend_make_compiled_string_description(assert code TSRMLS_CC); if (zend_eval_string(myeval, retval, compiled_string_description TSRMLS_CC) == FAILURE) { efree(compiled_string_description); - php_error_docref(NULL TSRMLS_CC, E_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); /* php_error_docref() does not return in this case. */ See this comment, not sure about E_RECOVERABLE_ERROR, but if does return, then the comment does not hold any more and probably more has to be changed? } efree(compiled_string_description); Regards, Andrey Ilia Alshanetsky -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard assert.c
iliaa Fri Jun 23 11:37:53 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard assert.c Log: Change E_ERROR to E_RECOVERABLE_ERROR http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c?r1=1.60.2.3r2=1.60.2.3.2.1diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.60.2.3 php-src/ext/standard/assert.c:1.60.2.3.2.1 --- php-src/ext/standard/assert.c:1.60.2.3 Sun Jan 1 12:50:14 2006 +++ php-src/ext/standard/assert.c Fri Jun 23 11:37:53 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: assert.c,v 1.60.2.3 2006/01/01 12:50:14 sniper Exp $ */ +/* $Id: assert.c,v 1.60.2.3.2.1 2006/06/23 11:37:53 iliaa Exp $ */ /* {{{ includes/startup/misc */ @@ -151,7 +151,7 @@ compiled_string_description = zend_make_compiled_string_description(assert code TSRMLS_CC); if (zend_eval_string(myeval, retval, compiled_string_description TSRMLS_CC) == FAILURE) { efree(compiled_string_description); - php_error_docref(NULL TSRMLS_CC, E_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); /* php_error_docref() does not return in this case. */ } efree(compiled_string_description); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard assert.c
Hi Ilia, Ilia Alshanetsky wrote: iliaa Fri Jun 23 11:37:53 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard assert.c Log: Change E_ERROR to E_RECOVERABLE_ERROR http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c?r1=1.60.2.3r2=1.60.2.3.2.1diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.60.2.3 php-src/ext/standard/assert.c:1.60.2.3.2.1 --- php-src/ext/standard/assert.c:1.60.2.3 Sun Jan 1 12:50:14 2006 +++ php-src/ext/standard/assert.c Fri Jun 23 11:37:53 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: assert.c,v 1.60.2.3 2006/01/01 12:50:14 sniper Exp $ */ +/* $Id: assert.c,v 1.60.2.3.2.1 2006/06/23 11:37:53 iliaa Exp $ */ /* {{{ includes/startup/misc */ @@ -151,7 +151,7 @@ compiled_string_description = zend_make_compiled_string_description(assert code TSRMLS_CC); if (zend_eval_string(myeval, retval, compiled_string_description TSRMLS_CC) == FAILURE) { efree(compiled_string_description); - php_error_docref(NULL TSRMLS_CC, E_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, Failure evaluating code: %s%s, PHP_EOL, myeval); /* php_error_docref() does not return in this case. */ See this comment, not sure about E_RECOVERABLE_ERROR, but if does return, then the comment does not hold any more and probably more has to be changed? } efree(compiled_string_description); Regards, Andrey -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php