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
{{ message }}
Repository navigation
Stdlib: hash_pbkdf2() — enum case operands must TypeError not LogicException (ext/hash/hash_pbkdf2.c, php-src-strict) #5972
hash_pbkdf2() string parameters ($algo, $password, $salt) must follow php-src TypeError on backed enum case operands (Z_PARAM_STR). Zend rejects enum objects; this compiler throws LogicException with a compiler-build message — wrong exception class and wrong coercion path.
php-src-strict: do not pass backed-enum backing scalars where Zend passes enum case objects to Z_PARAM_STR (rejects with TypeError).
Fix:hash_pbkdf2() algo/password/salt args now use VmString::coerceStringBuiltinArg() (VM) and JitStringBuiltinArg::lower() (JIT) — enum case operands raise TypeError matching php-src ext/hash/hash_pbkdf2.c instead of LogicException.
Activity
PurHur commentedon Jun 9, 2026
claim: PHP Runtime → PHP — starting this run (#5972: hash_pbkdf2() enum operands must TypeError not LogicException).
hash_pbkdf2(): TypeError on enum case operands (#5972) (#7823)
PurHur commentedon Jun 9, 2026
Merged via #7823.
Fix:
hash_pbkdf2()algo/password/salt args now useVmString::coerceStringBuiltinArg()(VM) andJitStringBuiltinArg::lower()(JIT) — enum case operands raiseTypeErrormatching php-srcext/hash/hash_pbkdf2.cinstead ofLogicException.Verification (green):
→
hash_pbkdf2(): Argument #2 ($password) must be of type string, E given→ OK (4 tests, 4 assertions) VM + JIT compliance