From: Leigh Date: Thu, 7 Jul 2016 14:32:38 +0000 (+0100) Subject: Fix crypt salt not being converted to b64 X-Git-Tag: php-7.1.0beta1~43^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=be3640150cb2f88d38a8d405b2bf708f04be39ef;p=php Fix crypt salt not being converted to b64 --- 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 {