diff options
| author | foobar <sniper@php.net> | 2003-08-11 00:49:19 +0000 |
|---|---|---|
| committer | foobar <sniper@php.net> | 2003-08-11 00:49:19 +0000 |
| commit | ebec2bb85993cdcfb5f4247f4d52f2d282f50b63 (patch) | |
| tree | b479dc3dd36dc2e970add4d756a4c861ae6b6154 /ext/standard/crypt.c | |
| parent | e1accb81c086295f4c95686736eebb9411bd2b54 (diff) | |
| download | php-git-ebec2bb85993cdcfb5f4247f4d52f2d282f50b63.tar.gz | |
Moved the RINIT(crypt) stuff into crypt() itself.
Diffstat (limited to 'ext/standard/crypt.c')
| -rw-r--r-- | ext/standard/crypt.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c index 45559e5484..0844e34679 100644 --- a/ext/standard/crypt.c +++ b/ext/standard/crypt.c @@ -89,8 +89,6 @@ extern char *crypt(char *__key, char *__salt); #define PHP_CRYPT_RAND php_rand(TSRMLS_C) -static int php_crypt_rand_seeded=0; - PHP_MINIT_FUNCTION(crypt) { REGISTER_LONG_CONSTANT("CRYPT_SALT_LENGTH", PHP_MAX_SALT_LEN, CONST_CS | CONST_PERSISTENT); @@ -103,16 +101,6 @@ PHP_MINIT_FUNCTION(crypt) } -PHP_RINIT_FUNCTION(crypt) -{ - if(!php_crypt_rand_seeded) { - php_srand(time(0) * getpid() * (unsigned long) (php_combined_lcg(TSRMLS_C) * 10000.0) TSRMLS_CC); - php_crypt_rand_seeded=1; - } - return SUCCESS; -} - - static unsigned char itoa64[] = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; static void php_to64(char *s, long v, int n) @@ -131,6 +119,10 @@ PHP_FUNCTION(crypt) char *str, *salt_in = NULL; int str_len, salt_in_len; + if (!BG(rand_is_seeded)) { + php_srand(GENERATE_SEED() TSRMLS_CC); + } + salt[0]=salt[PHP_MAX_SALT_LEN]='\0'; /* This will produce suitable results if people depend on DES-encryption available (passing always 2-character salt). At least for glibc6.1 */ |
