Steps to reproduce: Try logging in with a 256-character username.
Expected result: Friendly error message saying the name is invalid.
Actual result: Fatal error: Call to a member function getName() on a
non-object in /var/www/git-trunk/phase3/includes/specials/SpecialUserlogin.php
on line 433
Fix: If you want to check whether something is a User object, check
whether it's a User object. There are things other than null that don't
behave like User objects.
# TODO: Allow some magic here for invalid external names, e.g., let the
# user choose a different wiki name.
$u = User::newFromName( $this->mName );
- if( is_null( $u ) || !User::isUsableName( $u->getName() ) ) {
+ if( !( $u instanceof User ) || !User::isUsableName( $u->getName() ) ) {
return self::ILLEGAL;
}