date() status

php.internals

Stanislav Malyshev

20 years ago
I'm not sure if all the patches are commited as for now, but it still doesn't work for me. First, IDT setting still returns unknown timezone, second, now PHP crashes in: 0x08095bcd in timelib_tzinfo_dtor (tz=0x0) at php5/ext/date/lib/timelib.c:107 107 TIMELIB_TIME_FREE(tz->name); (gdb) bt #0 0x08095bcd in timelib_tzinfo_dtor (tz=0x0) at php5/ext/date/lib/timelib.c:107 #1 0x08076f31 in _php_date_tzinfo_dtor (tzinfo=0xa3252a0) at php5/ext/date/php_date.c if I set 'IDT' timezone. Same if I set 'IST' timezone.
-- Stanislav Malyshev, Zend Products Engineer stas@zend.com http://www.zend.com/ +972-3-6139665 ext.115

Nuno Lopes

20 years ago
> I'm not sure if all the patches are commited as for now, but it still > doesn't work for me. First, IDT setting still returns unknown timezone, > second, now PHP crashes in: > > 0x08095bcd in timelib_tzinfo_dtor (tz=0x0) at > php5/ext/date/lib/timelib.c:107 > 107 TIMELIB_TIME_FREE(tz->name); > (gdb) bt > #0 0x08095bcd in timelib_tzinfo_dtor (tz=0x0) at > php5/ext/date/lib/timelib.c:107 > #1 0x08076f31 in _php_date_tzinfo_dtor (tzinfo=0xa3252a0) at > php5/ext/date/php_date.c > > if I set 'IDT' timezone. Same if I set 'IST' timezone.
This patch should fix the segfault: http://mega.ist.utl.pt/~ncpl/php_date_segf.txt The problem of not recognising your timezones is because currently the code isn't doing any guessing magic (aka guess full name from abbr) when the TZ environment var is set. Perhaps a timelib_timezone_id_from_abbr() call could be added in the 'if (env && *env)' section. Nuno

Stanislav Malyshev

20 years ago
NL>>This patch should fix the segfault: NL>>http://mega.ist.utl.pt/~ncpl/php_date_segf.txt Any reason it's not in 5.1 CVS?
-- Stanislav Malyshev, Zend Products Engineer stas@zend.com http://www.zend.com/ +972-3-6139665 ext.115

Derick Rethans

20 years ago
On Mon, 10 Oct 2005, Stanislav Malyshev wrote:
> NL>>This patch should fix the segfault: > NL>>http://mega.ist.utl.pt/~ncpl/php_date_segf.txt > > Any reason it's not in 5.1 CVS?
Yes, I didn't have time to look at it yet. I've other things to do :) Derick
-- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org

Derick Rethans

20 years ago
On Sun, 9 Oct 2005, Nuno Lopes wrote:
> > I'm not sure if all the patches are commited as for now, but it still > > doesn't work for me. First, IDT setting still returns unknown timezone, > > second, now PHP crashes in: > > > > 0x08095bcd in timelib_tzinfo_dtor (tz=0x0) at > > php5/ext/date/lib/timelib.c:107 > > 107 TIMELIB_TIME_FREE(tz->name); > > (gdb) bt > > #0 0x08095bcd in timelib_tzinfo_dtor (tz=0x0) at > > php5/ext/date/lib/timelib.c:107 > > #1 0x08076f31 in _php_date_tzinfo_dtor (tzinfo=0xa3252a0) at > > php5/ext/date/php_date.c > > > > if I set 'IDT' timezone. Same if I set 'IST' timezone. > > This patch should fix the segfault: > http://mega.ist.utl.pt/~ncpl/php_date_segf.txt
I fixed it in a slightly different way. It's fine to cache missed lookups, but we shouldn't try to dtor those then.
> The problem of not recognising your timezones is because currently the > code isn't doing any guessing magic (aka guess full name from abbr) > when the TZ environment var is set. Perhaps a > timelib_timezone_id_from_abbr() call could be added in the 'if (env && > *env)' section.
No, setting a timezone through a TZ environment variable to an abbreviation is not a good idea. Either set your system's timezone correctly or use a full identifier in the TZ environment variable. Derick
-- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org