php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #44742 timezone_offset_get() behaviour change
Submitted: 2008-04-16 11:24 UTC Modified: 2008-04-26 11:26 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: thekid@php.net Assigned: derick (profile)
Status: Closed Package: Date/time related
PHP Version: 5.2CVS-2008-04-24 (snap) OS: Any
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
2 + 6 = ?
Subscribe to this entry?

 
 [2008-04-16 11:24 UTC] thekid@php.net
Description:
------------
timezone_offset_get() causes segmentation faults.

Reproduce code:
---------------
$ ./php.exe -r '$date= date_create("2008-04-11 00:00:00+0000"); var_dump(timezone_offset_get(date_timezone_get($date), $date));'
[...Segmentation fault Dialog box...]

friebe@rnt15501 ~/bin/php5dev
$ ./php.exe -v
PHP 5.2.6RC6-dev (cli) (built: Apr 15 2008 12:04:52) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies


Expected result:
----------------
int(7200)

Actual result:
--------------
Segmentation fault

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-04-16 11:51 UTC] thekid@php.net
Works fine with 5.2.5...
 [2008-04-16 17:24 UTC] derick@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

However, the expected output is int(0).
 [2008-04-24 16:05 UTC] thekid@php.net
Reopen, now I get different results:

$ php -r '$date= date_create("2008-04-11 00:00:00+0000"); var_dump(timezone_offset_get(date_timezone_get($date), $date));'
int(7200)

$ php -v
PHP 5.2.5 (cli) (built: Nov  8 2007 23:18:51) 

== versus ==

$ ./php.exe -r '$date= date_create("2008-04-11 00:00:00+0000"); var_dump(timezone_offset_get(date_timezone_get($date), $date));'
int(0)

$ ./php.exe -v
PHP 5.2.6RC6-dev (cli) (built: Apr 24 2008 08:04:56) 

 [2008-04-24 16:08 UTC] jani@php.net
You did notice Derick's comment?

"However, the expected output is int(0)."

So what you get is the expected value..
 [2008-04-26 11:26 UTC] thekid@php.net
> "However, the expected output is int(0)."

I indeed didn't notice this. The expected value was what PHP 5.2.5 gave me (and also what 5.2.0, 5.2.1 and 5.2.3 report).

To sum it up:
* PHP < 5.2.6 is broken
* PHP 5.2.6RC* segfaulted and was thus broken
* PHP >= 5.2CVS-2008-04-24 is fixed.

Right?
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Apr 24 12:01:29 2024 UTC