diff options
Diffstat (limited to 'ext/standard/crypt.c')
-rw-r--r-- | ext/standard/crypt.c | 6 |
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 { |