cvs: php4 /ext/standard crypt.c
| From: | Andi Gutmans | Date: | Fri, 03 Nov 2000 00:45:24 +0000 |
| Subject: | cvs: php4 /ext/standard crypt.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-2441@lists.php.net to get a copy of this message | ||
andi Thu Nov 2 16:45:24 2000 EDT
Modified files:
/php4/ext/standard crypt.c
Log:
- Make the random generator work again. This patch seems to work.
Index: php4/ext/standard/crypt.c
diff -u php4/ext/standard/crypt.c:1.30 php4/ext/standard/crypt.c:1.31
--- php4/ext/standard/crypt.c:1.30 Wed Jul 26 09:42:04 2000
+++ php4/ext/standard/crypt.c Thu Nov 2 16:45:24 2000
@@ -17,7 +17,7 @@
| Rasmus Lerdorf <rasmus@lerdorf.on.ca> |
+----------------------------------------------------------------------+
*/
-/* $Id: crypt.c,v 1.30 2000/07/26 16:42:04 sas Exp $ */
+/* $Id: crypt.c,v 1.31 2000/11/03 00:45:24 andi Exp $ */
#include <stdlib.h>
#include "php.h"
@@ -103,7 +103,16 @@
REGISTER_LONG_CONSTANT("CRYPT_STD_DES", PHP_STD_DES_CRYPT, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CRYPT_EXT_DES", PHP_EXT_DES_CRYPT, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CRYPT_MD5", PHP_MD5_CRYPT, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("CRYPT_BLOWFISH", PHP_BLOWFISH_CRYPT, CONST_CS |
CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("CRYPT_BLOWFISH", PHP_BLOWFISH_CRYPT, CONST_CS |
CONST_PERSISTENT);
+
+#if HAVE_SRAND48
+ srand48((unsigned int) time(0) * getpid() * (php_combined_lcg() * 10000.0));
+#elif HAVE_SRANDOM
+ srandom((unsigned int) time(0) * getpid() * (php_combined_lcg() * 10000.0));
+#else
+ srand((unsigned int) time(0) * getpid() * (php_combined_lcg() * 10000.0));
+#endif
+
return SUCCESS;
}
@@ -139,7 +148,7 @@
RETURN_FALSE;
}
convert_to_string_ex(arg2);
- memcpy(salt, (*arg2)->value.str.val, MIN(PHP_MAX_SALT_LEN,(*arg2)->value.str.len));
+ memcpy(salt, Z_STRVAL_PP(arg2), MIN(PHP_MAX_SALT_LEN, Z_STRLEN_PP(arg2)));
break;
default:
WRONG_PARAM_COUNT;
@@ -149,14 +158,6 @@
/* The automatic salt generation only covers standard DES and md5-crypt */
if(!*salt) {
-#if HAVE_SRAND48
- srand48((unsigned int) time(0) * getpid() * (php_combined_lcg() * 10000.0));
-#elif HAVE_SRANDOM
- srandom((unsigned int) time(0) * getpid() * (php_combined_lcg() * 10000.0));
-#else
- srand((unsigned int) time(0) * getpid() * (php_combined_lcg() * 10000.0));
-#endif
-
#if PHP_STD_DES_CRYPT
php_to64(&salt[0], PHP_CRYPT_RAND, 2);
salt[2] = '\0';
@@ -168,7 +169,7 @@
#endif
}
- return_value->value.str.val = (char *) crypt((*arg1)->value.str.val, salt);
+ return_value->value.str.val = (char *) crypt(Z_STRVAL_PP(arg1), salt);
return_value->value.str.len = strlen(return_value->value.str.val);
return_value->type = IS_STRING;
pval_copy_constructor(return_value);