Re: PHP 4.0 Bug #6647 Updated: crypt() function causes Arithmetic exception
| From: | Gerry Allen | Date: | Sun, 24 Dec 2000 16:49:05 +0000 |
| Subject: | Re: PHP 4.0 Bug #6647 Updated: crypt() function causes Arithmetic exception | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-42221@lists.php.net to get a copy of this message | ||
Yes, it has been fixed in the latest snap (4.0.5-DEV).
On Sat, 23 Dec 2000, Rasmus Lerdorf wrote:
> FreeBSD? if so, this has been fixed.
>
> On 24 Dec 2000 gallen@valere.net wrote:
>
> > ID: 6647
> > User Update by: gallen@valere.net
> > Status: Open
> > Bug Type: Reproduceable crash
> > Description: crypt() function causes Arithmetic exception
> >
> > This patch (listed under #7617) fixes the FPE problem in FreeBSD 3.4:
> >
> > Change line 109 in crypt.c to:
> >
> > srand48((long)time(0) * (long)getpid() *
> > (long)(php_combined_lcg()*(double)10000.0));
> >
> >
> >
> > Previous Comments:
> > ---------------------------------------------------------------------------
> >
> > [2000-12-20 23:00:08] gallen@valere.net
> > No Good - PHP 4.0.4 causes Apache to core dump!
> > (see below)
> >
> >
> > (543 / 43) [/usr/local/src/apache/php-4.0.4]$: gdb /usr/local/www/bin/httpd httpd.core
> > GNU gdb 4.18
> > Copyright 1998 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 "i386-unknown-freebsd"...
> > (no debugging symbols found)...
> > Core was generated by `httpd'.
> > Program terminated with signal 8, Floating point exception.
> > Reading symbols from /usr/lib/libcrypt.so.2...(no debugging symbols found)...
> > done.
> > Reading symbols from /usr/local/BerkeleyDB.3.1/lib/libdb-3.1.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/lib/libc.so.3...(no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_vhost_alias.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_env.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_log_config.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_mime_magic.so...
> > (no debugging symbols found)...done.
> > ---Type <return> to continue, or q <return> to quit---bt
> > Reading symbols from /usr/local/www/libexec/mod_mime.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_negotiation.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_status.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_info.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_include.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_autoindex.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_dir.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_cgi.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_asis.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_imap.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_actions.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_speling.so...
> > ---Type <return> to continue, or q <return> to quit---
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_userdir.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_alias.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_rewrite.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_access.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_auth.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_auth_anon.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_auth_dbm.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_auth_db.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_digest.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/libproxy.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_cern_meta.so...
> > (no debugging symbols found)...done.
> > ---Type <return> to continue, or q <return> to quit---
> > Reading symbols from /usr/local/www/libexec/mod_expires.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_headers.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_usertrack.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_unique_id.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/mod_setenvif.so...
> > (no debugging symbols found)...done.
> > Reading symbols from /usr/local/www/libexec/libphp4.so...
> > done.
> > Reading symbols from /usr/lib/libpam.so.1...done.
> > Reading symbols from /usr/home/pgsql/lib/libpq.so.2...done.
> > Reading symbols from /usr/lib/libm.so.2...done.
> > Reading symbols from /usr/libexec/ld-elf.so.1...done.
> > #0 0x282c3342 in php_minit_crypt (type=1, module_number=2) at crypt.c:109
> > 109 srand48((unsigned int) time(0) * getpid() * (php_combined_lcg() *
> > 10000.0));
> > (gdb)
> > (gdb)
> >
> > ---------------------------------------------------------------------------
> >
> > [2000-11-21 04:23:40] sniper@php.net
> > Could you try latest snapshot from http://snaps.php.net/
> > as I think this is fixed..
> >
> > --Jani
> >
> > ---------------------------------------------------------------------------
> >
> > [2000-10-12 12:37:43] gallen@valere.net
> > Still broken in version 4.0.3
> >
> > Crypt() works in 4.0.1pl2 under FreeBSD 3.4 but causes
> > Arithmetic exception in Version 4.0.2 and 4.0.3.
> >
> >
> > ---------------------------------------------------------------------------
> >
> > [2000-09-10 00:05:39] gallen@valere.net
> > BTW, The crypt function works fine in FreeBSD 4.0 with/4.0.2
> >
> > GDB Output
> > -----------
> > Program received signal SIGFPE, Arithmetic exception.
> > 0x282d1139 in php_if_crypt (ht=1, return_value=0x81038cc, this_ptr=0x0,
> > return_value_used=1) at crypt.c:153
> > 153 srand48((unsigned int) time(0) * getpid() * (php_combine---Type
> > <return> to continue, or
> > q <return> to quit---
> > d_lcg() * 10000.0));
> > (gdb) bt
> > #0 0x282d1139 in php_if_crypt (ht=1, return_value=0x81038cc, this_ptr=0x0,
> > return_value_used=1) at crypt.c:153
> > #1 0x2826c22a in execute (op_array=0x812568c) at ./zend_execute.c:1519
> > #2 0x282785db in zend_execute_scripts (type=8, file_count=3) at zend.c:712
> > #3 0x28287324 in php_execute_script (primary_file=0xbfbfda40) at main.c:1173
> > #4 0x282841b9 in apache_php_module_main (r=0x8132034, display_source_mode=0)
> > at sapi_apache.c:89
> > #5 0x28284a71 in send_php (r=0x8132034, display_source_mode=0, filename=0x0)
> > at mod_php4.c:503
> > #6 0x28284aa4 in send_parsed_php (r=0x8132034) at mod_php4.c:514
> > #7 0x805371f in ap_invoke_handler ()
> > #8 0x8066401 in process_request_internal ()
> > #9 0x8066460 in ap_process_request ()
> > #10 0x805dda9 in child_main ()
> > #11 0x805df34 in make_child ()
> > #12 0x805e08f in startup_children ()
> > #13 0x805e640 in standalone_main ()
> > #14 0x805ee9f in main ()
> > #15 0x804e881 in _start ()
> >
> > Configure
> > ----------
> > CPPFLAGS="-I/usr/local/include/gd/ -I/usr/local/BerkeleyDB.3.1/include/"
> > LDFLAGS=-L/usr/local/BerkeleyDB.3.1/lib/
> > ./configure --with-apxs=/usr/local/www/bin/apxs
> > --disable-debug
> > --with-pgsql=/usr/home/pgsql
> > --with-xml
> > --enable-track-vars
> > --enable-trans-sid
> > --with-db3=/usr/local/BerkeleyDB.3.1
> > --with-mcrypt
> > --enable-ftp
> >
> > HTML
> > ----
> > <html>
> > <head>
> > <title>test crypt</title>
> > </head>
> > <body>
> > <?php
> > echo "Current PHP version: ".phpversion()."<br>";
> > $rc = crypt("password");
> > echo "rc=$rc<br>n";
> > echo phpinfo();
> > ?>
> > </body>
> > </html>
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------------
> >
> >
> > Full Bug description available at:
> > http://bugs.php.net/?id=6647
> >
> >
> > --
> > PHP Development Mailing List <http://www.php.net/>
> > To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
> > For additional commands, e-mail: php-dev-help@lists.php.net
> > To contact the list administrators, e-mail: php-list-admin@lists.php.net
> >
>
>