summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeigh <leigh@php.net>2016-07-07 15:32:38 +0100
committerLeigh <leigh@php.net>2016-07-07 15:32:38 +0100
commitbe3640150cb2f88d38a8d405b2bf708f04be39ef (patch)
treeb0c3e3fec6b99a3606704ff3583ea2076f2297b6
parent69e7d8dcd5ccfbd4e46cdf502e7e8b0f3aa339bc (diff)
downloadphp-git-be3640150cb2f88d38a8d405b2bf708f04be39ef.tar.gz
Fix crypt salt not being converted to b64
-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 {