Edit report at https://bugs.php.net/bug.php?id=62852&edit=1

 ID:                 62852
 Comment by:         re...@php.net
 Reported by:        kasper at webmasteren dot eu
 Summary:            Unserialize Invalid Date causes crash
 Status:             Closed
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   windows, linux
 PHP Version:        Irrelevant
 Assigned To:        laruence
 Block user comment: N
 Private report:     N

 New Comment:

Yeah, the segfault is bad.

but the test script is wired, why do you want to refer to it before wakeup?

When construct the DateTime if invalid date it throw exception, so
when unserialize from an invalid date throw exception is reasonable.


Previous Comments:
------------------------------------------------------------------------
[2012-09-15 03:33:26] larue...@php.net

Automatic comment on behalf of laruence
Revision: 
http://git.php.net/?p=php-src.git;a=commit;h=e766f85405cd936a07a30a045f419199b6c02ed7
Log: Revert "Fixed bug #62852 (Unserialize invalid DateTime causes 
crash)"

------------------------------------------------------------------------
[2012-09-15 03:32:53] larue...@php.net

Automatic comment on behalf of laruence
Revision: 
http://git.php.net/?p=php-src.git;a=commit;h=e766f85405cd936a07a30a045f419199b6c02ed7
Log: Revert "Fixed bug #62852 (Unserialize invalid DateTime causes 
crash)"

------------------------------------------------------------------------
[2012-09-15 03:30:56] larue...@php.net

@tstarling  okey, I reverted. and make the test XFAIL for now, we should fix 
this 
in another way.

------------------------------------------------------------------------
[2012-09-15 03:30:07] larue...@php.net

Automatic comment on behalf of laruence
Revision: 
http://git.php.net/?p=php-src.git;a=commit;h=e766f85405cd936a07a30a045f419199b6c02ed7
Log: Revert "Fixed bug #62852 (Unserialize invalid DateTime causes 
crash)"

------------------------------------------------------------------------
[2012-09-14 21:22:38] tstarl...@php.net

The suggested patch does not fix the bug. Throwing an exception does not ensure 
destruction of the object. For example, you can override __wakeup() in a 
derived class and put a reference to the half-initialised object in a global 
value before calling DateTime::__wakeup(). Full test case at 

http://tstarling.com/stuff/bad-date.phps

It segfaults for me on today's git master. It looks to me like either 
dateobj->time should be fully initialised, or it should be set back to NULL so 
that DATE_CHECK_INITIALIZED() etc. will guard accesses.

In my opinion, throwing an exception from unserialize() is an unnecessary b/c 
break and should be reverted.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=62852


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=62852&edit=1

Reply via email to