From be3640150cb2f88d38a8d405b2bf708f04be39ef Mon Sep 17 00:00:00 2001 From: Leigh Date: Thu, 7 Jul 2016 15:32:38 +0100 Subject: [PATCH] Fix crypt salt not being converted to b64 --- ext/standard/crypt.c | 6 +++--- 1 file 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 { -- 2.50.1