ID: 35751
Comment by: pablomh at gmail dot com
Reported By: lehmann at ans-netz dot de
Status: Feedback
Bug Type: Date/time related
Operating System: FreeBSD 6.0/alpha
PHP Version: 5.1.1
New Comment:
I'd like to say I'm seeing a similar behaviour in OpenBSD/sparc64
-current with php 5.1.1:
$ php -r "echo date('Y',10000);"
Segmentation fault (core dumped)
$ gdb /usr/local/bin/php -c php.core
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "sparc64-unknown-openbsd3.8"...(no debugging
symbols found)
Core was generated by `php'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libstdc++.so.40.0...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libstdc++.so.40.0
Reading symbols from /usr/lib/libm.so.2.1...done.
Loaded symbols for /usr/lib/libm.so.2.1
Reading symbols from /usr/local/lib/libintl.so.3.0...done.
Loaded symbols for /usr/local/lib/libintl.so.3.0
Reading symbols from /usr/lib/libssl.so.10.0...done.
Loaded symbols for /usr/lib/libssl.so.10.0
Reading symbols from /usr/lib/libcrypto.so.12.0...done.
Loaded symbols for /usr/lib/libcrypto.so.12.0
Reading symbols from /usr/lib/libz.so.4.1...done.
Loaded symbols for /usr/lib/libz.so.4.1
Reading symbols from /usr/local/lib/libxml2.so.9.0...done.
Loaded symbols for /usr/local/lib/libxml2.so.9.0
Reading symbols from /usr/local/lib/libiconv.so.4.0...done.
Loaded symbols for /usr/local/lib/libiconv.so.4.0
Reading symbols from /usr/lib/libc.so.38.4...done.
Loaded symbols for /usr/lib/libc.so.38.4
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
Reading symbols from /var/www/lib/php/modules/mysql.so...done.
Loaded symbols for /var/www/lib/php/modules/mysql.so
Reading symbols from /usr/local/lib/libmysqlclient.so.14.0...done.
Loaded symbols for /usr/local/lib/libmysqlclient.so.14.0
#0 0x000000000017b2e4 in get_timezone_info ()
(gdb) backtrace
#0 0x000000000017b2e4 in get_timezone_info ()
#1 0x000000000017bd78 in php_format_date ()
#2 0x000000000017bcd8 in get_timezone_info ()
#3 0x000000000031eb3c in execute ()
#4 0x000000000031e2f0 in execute ()
#5 0x00000000002e8bb4 in zend_eval_string ()
#6 0x00000000002e8d20 in zend_eval_string_ex ()
#7 0x0000000000378bd8 in main ()
(gdb)
This error began when I upgraded from 5.0.4 to 5.1.1.
It can be an endianness bug, so it's no exposed in i386/x86_64, and I
don't think it's our "rare platform".
Previous Comments:
------------------------------------------------------------------------
[2005-12-21 22:56:17] tony2001@php.net
This only means that you're on your own with the rare platform you
have.
I guess the only solution is to try to debug it and tell us what's the
problem, since it works fine for us.
------------------------------------------------------------------------
[2005-12-21 22:50:00] lehmann at ans-netz dot de
As far as I could checked, it also works with FreeBSD/i386 and
FreeBSD/amd64, but not with FreeBSD/alpha. Since 5.0.5 worked with the
ext/standard/datetime.[ch] code on FreeBSD/alpha before I doubt that
this is a problem with my OS
------------------------------------------------------------------------
[2005-12-21 15:12:22] tony2001@php.net
Works perfectly fine on Linux, both i386 and x86_64.
------------------------------------------------------------------------
[2005-12-21 15:04:27] lehmann at ans-netz dot de
here is the backtrace from the latest cvs snapshot (please don't be
iretated by the path i renamed php5-CVS... to php-5.1.1)
#0 0x0000000120029ce8 in php_format_date (
format=0x2 <Address 0x2 out of bounds>, format_len=1, ts=10000,
localtime=1)
at
/usr/obj/alpha-ev56-6.0/usr/ports/lang/php5/work/php-5.1.1/ext/date/php_date.c:465
465 switch (format[i]) {
(gdb) bt
#0 0x0000000120029ce8 in php_format_date (
format=0x2 <Address 0x2 out of bounds>, format_len=1, ts=10000,
localtime=1)
at
/usr/obj/alpha-ev56-6.0/usr/ports/lang/php5/work/php-5.1.1/ext/date/php_date.c:465
#1 0x0000000000000002 in ?? ()
Cannot access memory at address 0xfffffffffffffffe
(gdb) up 0
#0 0x0000000120029ce8 in php_format_date (
format=0x2 <Address 0x2 out of bounds>, format_len=1, ts=10000,
localtime=1)
at
/usr/obj/alpha-ev56-6.0/usr/ports/lang/php5/work/php-5.1.1/ext/date/php_date.c:465
465 switch (format[i]) {
(gdb) list
460 }
461 buffer[32] = '\0';
462 timelib_isoweek_from_date(t->y, t->m, t->d, &isoweek,
&isoyear);
463
464 for (i = 0; i < format_len; i++) {
465 switch (format[i]) {
466 /* day */
467 case 'd': snprintf(buffer, 32, "%02d",
(int) t->d); break;
468 case 'D': snprintf(buffer, 32, "%s",
day_short_names[timelib_day_of_week(t->y, t->m, t->d)]); break;
469 case 'j': snprintf(buffer, 32, "%d",
(int) t->d); break;
(gdb)
------------------------------------------------------------------------
[2005-12-20 23:00:28] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.1-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.1-win32-latest.zip
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/35751
--
Edit this bug report at http://bugs.php.net/?id=35751&edit=1