Re: com php-src: Re-fixed Bug #66481 (Calls to session_name() segfault when session.name is null): NEWS ext/session/session.c
ext/session/tests/bug66481.phpt
| From: | Yasuo Ohgaki | Date: | Thu, 16 Jan 2014 07:13:03 +0000 |
| Subject: | Re: com php-src: Re-fixed Bug #66481 (Calls to session_name() segfault when session.name is null): NEWS ext/session/session.c ext/session/tests/bug66481.phpt |
||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-75649@lists.php.net to get a copy of this message | ||
It's better than previous one.
Thank you.
--
Yasuo Ohgaki
yohgaki@ohgaki.net
On Thu, Jan 16, 2014 at 3:41 PM, Xinchen Hui <laruence@php.net> wrote:
> Commit: b777248ded69289b84d645ba2f36dbc207c77ff7
> Author: Xinchen Hui <laruence@php.net> Thu, 16 Jan 2014
> 14:41:12 +0800
> Parents: 271053ad470e4b7f0e1eb46dfc1a4369d5c7baa2
> Branches: PHP-5.4 PHP-5.5 PHP-5.6 master
>
> Link:
>
> http://git.php.net/?p=php-src.git;a=commitdiff;h=b777248ded69289b84d645ba2f36dbc207c77ff7
>
> Log:
> Re-fixed Bug #66481 (Calls to session_name() segfault when session.nameis null)
>
> Bugs:
> https://bugs.php.net/66481
>
> Changed paths:
> M NEWS
> M ext/session/session.c
> A ext/session/tests/bug66481.phpt
>
>
> Diff:
> diff --git a/NEWS b/NEWS
> index cffe5ae..81f88bf 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -5,6 +5,10 @@ PHP
> NEWS
> - Core:
> . Fixed bug #66286 (Incorrect object comparison with inheritance).
> (Nikita)
>
> +- Session:
> + . Fixed bug #66481 (Calls to session_name() segfault when session.nameis
> + null). (Laruence)
> +
> ?? ??? 2013, PHP 5.4.24
>
> - Core:
> diff --git a/ext/session/session.c b/ext/session/session.c
> index 35db50a..5b03d63 100644
> --- a/ext/session/session.c
> +++ b/ext/session/session.c
> @@ -618,11 +618,10 @@ static PHP_INI_MH(OnUpdateSaveDir) /* {{{ */
> static PHP_INI_MH(OnUpdateName) /* {{{ */
> {
> /* Numeric session.name won't work at all */
> - if (PG(modules_activated) &&
> - (!new_value_length || is_numeric_string(new_value,
> new_value_length, NULL, NULL, 0))) {
> + if ((!new_value_length || is_numeric_string(new_value,
> new_value_length, NULL, NULL, 0))) {
> int err_type;
>
> - if (stage == ZEND_INI_STAGE_RUNTIME) {
> + if (stage == ZEND_INI_STAGE_RUNTIME || stage ==
> ZEND_INI_STAGE_ACTIVATE || stage == ZEND_INI_STAGE_STARTUP) {
> err_type = E_WARNING;
> } else {
> err_type = E_ERROR;
> diff --git a/ext/session/tests/bug66481.phpt
> b/ext/session/tests/bug66481.phpt
> new file mode 100644
> index 0000000..cf6ad6a
> --- /dev/null
> +++ b/ext/session/tests/bug66481.phpt
> @@ -0,0 +1,17 @@
> +--TEST--
> +Bug #66481: Calls to session_name() segfault when session.name is null.
> +--INI--
> +session.name=
> +--SKIPIF--
> +<?php include('skipif.inc'); ?>
> +--FILE--
> +<?php
> +
> +var_dump(session_name("foo"));
> +var_dump(session_name("bar"));
> +--EXPECTF--
> +PHP Warning: PHP Startup: session.name cannot be a numeric or empty ''
> in Unknown on line 0
> +
> +Warning: PHP Startup: session.name cannot be a numeric or empty '' in
> Unknown on line 0
> +string(9) "PHPSESSID"
> +string(3) "foo"
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>