Description:
------------
Function rand() without setting random seed by srand() returns always the same value. It doesn't work only on Windows PHP-CLI. As Windows Apache module and also on Linux PHP-CLI it works as it should.
Reproduce code:
---------------
echo rand();
Expected result:
----------------
(random value)
Actual result:
--------------
24849

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports

[2003-12-02 10:57 UTC] spam at vrana dot cz

I can't believe myself, the problem is caused by something completely different. I discovered that the problem occurs only under this circumstances:
1. Lines in php.ini file ends by CRLF.
2. Windows Extensions part in php.ini is longer than 503 characters (including new-lines).
I don't know what is it but it looks like buffer overflow or something like that. So the problem is probably in php-src/main/php_ini.c or somewhere near.

It behaves like that with php.ini-dist. It doesn't with php.ini-recommended. If I remove part Dynamic Extensions in php.ini-dist, it disappears. I mean part from
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
to
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
You know that everything is commented in this part in php.ini-dist.

This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.