From: Niklas Laxström Date: Tue, 11 Jun 2013 16:42:10 +0000 (+0000) Subject: Avoid exceptions by first checking language code validity X-Git-Tag: 1.31.0-rc.0~19397^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22articles%22%2C%22id_article=%24ze_article%22%29%20.%20%22?a=commitdiff_plain;h=a7a693f4b086cbe31afa8508c1cc044242fb7bb8;p=lhc%2Fweb%2Fwiklou.git Avoid exceptions by first checking language code validity Bug: 49423 Change-Id: I3fd98ba08393856311a48fa40769027460c72ef9 --- diff --git a/languages/Language.php b/languages/Language.php index 92ea75c814..00f654b9e7 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -385,6 +385,12 @@ class Language { public static function isKnownLanguageTag( $tag ) { static $coreLanguageNames; + // Quick escape for invalid input to avoid exceptions down the line + // when code tries to process tags which are not valid at all. + if ( !self::isValidBuiltInCode( $tag ) ) { + return false; + } + if ( $coreLanguageNames === null ) { include MWInit::compiledPath( 'languages/Names.php' ); } diff --git a/tests/phpunit/languages/LanguageTest.php b/tests/phpunit/languages/LanguageTest.php index d687dbbd93..42be936484 100644 --- a/tests/phpunit/languages/LanguageTest.php +++ b/tests/phpunit/languages/LanguageTest.php @@ -494,6 +494,7 @@ class LanguageTest extends LanguageClassesTestCase { public static function provideUnknownLanguageTags() { return array( array( 'mw', 'non-existent two-letter code' ), + array( 'foo"