Re: com php-src: Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file): NEWS Zend/zend.c
| From: | Laruence | Date: | Thu, 26 Jul 2012 04:56:41 +0000 |
| Subject: | Re: com php-src: Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file): NEWS Zend/zend.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-69706@lists.php.net to get a copy of this message | ||
Hi:
this bug is similar to #49000, and the fix is a little ugly, in this
case, setting CG(interactive) in sapi/cli/php_cli.c becomes
unnecessary.
thanks
On Thu, Jul 26, 2012 at 12:40 PM, Xinchen Hui <laruence@php.net> wrote:
> Commit: b4b3a65f5518803c4a3bca34ac67e139b2547133
> Author: Xinchen Hui <laruence@php.net> Thu, 26 Jul 2012 12:40:47 +0800
> Parents: 9fe8c58130ac82d2b52b35a290b71569abe50d18
> Branches: PHP-5.4
>
> Link:
> http://git.php.net/?p=php-src.git;a=commitdiff;h=b4b3a65f5518803c4a3bca34ac67e139b2547133
>
> Log:
> Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file)
>
> Bugs:
> https://bugs.php.net/62661
>
> Changed paths:
> M NEWS
> M Zend/zend.c
>
>
> Diff:
> diff --git a/NEWS b/NEWS
> index 883d910..d429849 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -3,6 +3,8 @@ PHP NEWS
> ?? ??? 2012, PHP 5.4.6
>
> - Core:
> + . Fixed bug #62661 (Interactive php-cli crashes if include() is used in
> + auto_prepend_file). (Laruence)
> . Fixed bug #62565 (Crashes due non-initialized internal properties_table).
> (Felipe)
>
> diff --git a/Zend/zend.c b/Zend/zend.c
> index 37a1a27..18c4f11 100644
> --- a/Zend/zend.c
> +++ b/Zend/zend.c
> @@ -1261,6 +1261,7 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int
> file_co
> zend_file_handle *file_handle;
> zend_op_array *orig_op_array = EG(active_op_array);
> zval **orig_retval_ptr_ptr = EG(return_value_ptr_ptr);
> + long orig_interactive = CG(interactive);
>
> va_start(files, file_count);
> for (i = 0; i < file_count; i++) {
> @@ -1268,6 +1269,15 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int
> file_co
> if (!file_handle) {
> continue;
> }
> +
> + if (orig_interactive) {
> + if (file_handle->filename[0] != '-' || file_handle->filename[1]) {
> + CG(interactive) = 0;
> + } else {
> + CG(interactive) = 1;
> + }
> + }
> +
> EG(active_op_array) = zend_compile_file(file_handle, type TSRMLS_CC);
> if (file_handle->opened_path) {
> int dummy = 1;
> @@ -1309,12 +1319,14 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval,
> int file_co
> va_end(files);
> EG(active_op_array) = orig_op_array;
> EG(return_value_ptr_ptr) = orig_retval_ptr_ptr;
> + CG(interactive) = orig_interactive;
> return FAILURE;
> }
> }
> va_end(files);
> EG(active_op_array) = orig_op_array;
> EG(return_value_ptr_ptr) = orig_retval_ptr_ptr;
> + CG(interactive) = orig_interactive;
>
> return SUCCESS;
> }
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
Laruence Xinchen Hui
http://www.laruence.com/