You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Zend/php-src coerces null to an empty string for password_hash()'s $password argument (non-strict user code). This compiler rejects the call with TypeError via VmString::coerceTypedStringBuiltinArg().
Fix:password_hash() VM uses VmString::coerceStringBuiltinArg() (null → '' per ext/standard/password.c Z_PARAM_STR); JIT uses JitStringBuiltinArg::lower() — same pattern as hash_pbkdf2().
Verification:
php bin/vm.php test/repro/maintainer_gap_password_hash_null.php → ok
vendor/bin/phpunit --filter password_hash_null test/compliance/ → OK (6)
vendor/bin/phpunit --filter PasswordBuiltinTest → OK (5)
Activity
PurHur commentedon Jul 6, 2026
claim: cursor-agent-lane-b — starting this run
Stdlib: password_hash(null) coerces to empty string (#17023) (#17027)
PurHur commentedon Jul 6, 2026
Merged via #17027
Fix:
password_hash()VM usesVmString::coerceStringBuiltinArg()(null →''per ext/standard/password.c Z_PARAM_STR); JIT usesJitStringBuiltinArg::lower()— same pattern ashash_pbkdf2().Verification:
php bin/vm.php test/repro/maintainer_gap_password_hash_null.php→okvendor/bin/phpunit --filter password_hash_null test/compliance/→ OK (6)vendor/bin/phpunit --filter PasswordBuiltinTest→ OK (5)password_hash(null, PASSWORD_BCRYPT)returns bcrypt hash verifying empty password