ID: 45038 Comment by: levi at alliancesoftware dot com dot au Reported By: astax dot t at gmail dot com Status: Assigned Bug Type: Date/time related Operating System: Linux PHP Version: 5.2.6 Assigned To: derick New Comment:
About as simple as you can get: <? $dt = new DateTime(); $dt->setTimezone($dt->getTimezone()); ?> Segfaults on FC9 x86_64 CLI compiled from source. (However, silently succeeds on FC8 x86 compiled from source). Previous Comments: ------------------------------------------------------------------------ [2008-05-31 10:54:36] [EMAIL PROTECTED] Another reproduce script: <?php $date= date_create(); var_dump($date); $origtz= date_timezone_get($date); var_dump($origtz); date_timezone_set($date, timezone_open('GMT')); var_dump($date); $formatted= date_format($date, 'r'); var_dump($formatted); date_timezone_set($date, $origtz); var_dump($date); echo $formatted; ?> == Output == object(DateTime)#1 (0) { } object(DateTimeZone)#2 (0) { } object(DateTime)#1 (0) { } string(31) "Sat, 31 May 2008 10:49:27 +0000" Segmentation fault == /Output == PHP 5.2.6 (cgi) (built: May 19 2008 09:18:35) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies ------------------------------------------------------------------------ [2008-05-27 10:46:51] [EMAIL PROTECTED] Wait and rely. :) Assigned to maintainer. ------------------------------------------------------------------------ [2008-05-27 08:23:31] astax dot t at gmail dot com Any chance for this to be fixed? ------------------------------------------------------------------------ [2008-05-19 10:13:43] astax dot t at gmail dot com Description: ------------ Crash when using DateTimeZone object, previously returned by DateTime::getTimezone() This worked fine in PHP 5.2.5 Probably this is related to how DateTimeZone object is returned: This code returns different results in 5.2.5 and 5.2.6 $old_tz = $d->getTimezone(); $d->setTimezone(new DateTimeZone('UTC')); echo $old_tz->getName(); 5.2.6 returns 'UTC', while 5.2.5 returns 'Asia/Novosibirsk' (my current timezone). Having in mind how objects in PHP5 are returned, I can accept this, but this must be documented properly and shouldn't cause crash. Reproduce code: --------------- $d = new DateTime(); $old_tz = $d->getTimezone(); $d->setTimezone(new DateTimeZone('UTC')); // setDate() and setTime() may go here - just for this example to make some sense $d->setTimezone($old_tz); echo "Success"; Expected result: ---------------- Success Actual result: -------------- PHP interpreter crashes ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=45038&edit=1