summaryrefslogtreecommitdiff
path: root/ext/standard/crypt.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/crypt.c')
-rw-r--r--ext/standard/crypt.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c
index 3604e19b02..9e097ca6cf 100644
--- a/ext/standard/crypt.c
+++ b/ext/standard/crypt.c
@@ -96,11 +96,10 @@ PHP_MSHUTDOWN_FUNCTION(crypt) /* {{{ */
static unsigned char itoa64[] = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-static void php_to64(char *s, zend_long v, int n) /* {{{ */
+static void php_to64(char *s, int n) /* {{{ */
{
while (--n >= 0) {
- *s++ = itoa64[v&0x3f];
- v >>= 6;
+ *s++ = itoa64[*s&0x3f];
}
}
/* }}} */
@@ -265,6 +264,7 @@ PHP_FUNCTION(crypt)
if (!*salt) {
strncpy(salt, "$1$", 3);
php_random_bytes_throw(&salt[3], 8);
+ php_to64(&salt[3], 8);
strncpy(&salt[11], "$", PHP_MAX_SALT_LEN - 11);
salt_in_len = strlen(salt);
} else {