* PHP-5.6:
Fixed bug #72703 Out of bounds global memory read in BF_crypt triggered by password_verify
} else if (
salt[0] == '$' &&
salt[1] == '2' &&
- salt[3] == '$' &&
- salt[4] >= '0' && salt[4] <= '3' &&
- salt[5] >= '0' && salt[5] <= '9' &&
- salt[6] == '$') {
+ salt[3] == '$') {
char output[PHP_MAX_SALT_LEN + 1];
- return FAILURE;
+ int k = 7;
+
+ while (isalnum(salt[k]) || '.' == salt[k] || '/' == salt[k]) {
+ k++;
+ }
+ if (k != salt_len) {
++ return NULL;
+ }
memset(output, 0, PHP_MAX_SALT_LEN + 1);