Bug #3481: get_browser() returns a segfault
| From: | jr at scms dot rgu dot ac dot uk | Date: | Mon, 14 Feb 2000 16:46:06 +0000 |
| Subject: | Bug #3481: get_browser() returns a segfault | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-15523@lists.php.net to get a copy of this message | ||
From: jr@scms.rgu.ac.uk
Operating system: SunOS 5.6 (Solaris 2.6)
PHP version: 3.0.14
PHP Bug Type: Reproduceable crash
Bug description: get_browser() returns a segfault
get_browser causes a segfault; eg, in logs/error_log:
[Mon Feb 14 16:21:51 2000] [notice] child pid 26443 exit signal Segmentation Fault (11)
It also seems as if the browscap.ini file is not being read; certainly, it's last modification
time (as per ls -lu) is not changing during either restart of Apache or invocation of a php3 script.
Information on the setup of php can be seen at http://www.scms.rgu.ac.uk/staff/jr/php3/phpinfo.php3
(basically, it just runs phpinfo() ). You can see that the browscap settings are there. Also, the
error log is not being created or generated at all.
PHP3 has been compiled under DSO for Apache 1.3.11
I would include a gdb backtrace, but there is no core being dumped (yes, I've changed the
ulimit setting); the best I could get was a truss on the process; here's the process from the
GET to the end of the process:
15286: read(5, " G E T / s t a f f / j".., 4096) = 307
15286: sigaction(SIGUSR1, 0xEFFFD710, 0xEFFFD790) = 0
15286: time() = 950540334
15286: stat("/usr/www/public/staff/jr/php3/test.php3", 0x0007C050) = 0
15286: open("/.htaccess", O_RDONLY) Err#2 ENOENT
15286: open("/usr/.htaccess", O_RDONLY) Err#2 ENOENT
15286: open("/usr/www/.htaccess", O_RDONLY) Err#2 ENOENT
15286: open("/usr/www/public/.htaccess", O_RDONLY) Err#2 ENOENT
15286: open("/usr/www/public/staff/jr/php3/test.php3", O_RDONLY) = 8
15286: fcntl(8, F_DUPFD, 0x0000000F) = 22
15286: close(8) = 0
15286: umask(077) = 022
15286: umask(022) = 077
15286: chdir("/usr/www/public/staff/jr/php3") = 0
15286: door_info(4, 0xEFFFD338) = 0
15286: door_call(4, 0xEFFFD320) = 0
15286: setitimer(ITIMER_PROF, 0xEFFFF578, 0x00000000) = 0
15286: sigaction(SIGPROF, 0xEFFFF448, 0xEFFFF4C8) = 0
15286: brk(0x000910D0) = 0
15286: brk(0x000C10D0) = 0
15286: ioctl(22, TCGETA, 0xEFFFF4A4) Err#25 ENOTTY
15286: ioctl(22, TCGETA, 0xEFFFF514) Err#25 ENOTTY
15286: ioctl(22, TCGETA, 0xEFFFF414) Err#25 ENOTTY
15286: fstat64(22, 0xEFFFE140) = 0
15286: ioctl(22, TCGETA, 0xEFFFE0CC) Err#25 ENOTTY
15286: read(22, " < H T M L >\n < H E A D".., 8192) = 710
15286: read(22, 0x00081F7C, 8192) = 0
15286: Incurred fault #6, FLTBOUNDS %pc = 0x00000000
15286: siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
15286: Received signal #11, SIGSEGV [caught]
15286: siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
15286: chdir("/usr/local/apache") = 0
15286: sigaction(SIGSEGV, 0xEFFFE0B8, 0xEFFFE138) = 0
15286: getpid() = 15286 [14703]
15286: kill(15286, SIGSEGV) = 0
15286: setcontext(0xEFFFE2B8)
15286: Received signal #11, SIGSEGV [default]
15286: siginfo: SIGSEGV pid=15286 uid=6006
15286: *** process killed ***