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