ID:               45038
 Updated by:       [EMAIL PROTECTED]
 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:

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



Previous Comments:
------------------------------------------------------------------------

[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

Reply via email to