fix crypt() issue with overlong salt

This commit is contained in:
Stanislav Malyshev 2011-07-04 23:38:09 +00:00
parent adabdede5e
commit 01249bb40b
2 changed files with 25 additions and 0 deletions

View file

@ -179,6 +179,8 @@ PHP_FUNCTION(crypt)
salt[2] = '\0';
#endif
salt_in_len = strlen(salt);
} else {
salt_in_len = MIN(PHP_MAX_SALT_LEN, salt_in_len);
}
/* Windows (win32/crypt) has a stripped down version of libxcrypt and

View file

@ -0,0 +1,23 @@
--TEST--
crypt() function - long salt
--SKIPIF--
<?php
if (!function_exists('crypt')) {
die("SKIP crypt() is not available");
}
?>
--FILE--
<?php
$b = str_repeat("A", 124);
echo crypt("A", "$5$" . $b)."\n";
$b = str_repeat("A", 125);
echo crypt("A", "$5$" . $b)."\n";
$b = str_repeat("A", 4096);
echo crypt("A", "$5$" . $b)."\n";
?>
--EXPECTF--
$5$AAAAAAAAAAAAAAAA$frotiiztWZiwcncxnY5tWG9Ida2WOZEximjLXCleQu6
$5$AAAAAAAAAAAAAAAA$frotiiztWZiwcncxnY5tWG9Ida2WOZEximjLXCleQu6
$5$AAAAAAAAAAAAAAAA$frotiiztWZiwcncxnY5tWG9Ida2WOZEximjLXCleQu6