Disallow qqq as interface language
authorNiklas Laxström <niklas.laxstrom@gmail.com>
Tue, 7 Jul 2015 12:44:49 +0000 (14:44 +0200)
committerAmire80 <amir.aharoni@mail.huji.ac.il>
Wed, 22 Jul 2015 21:06:22 +0000 (21:06 +0000)
Any page on translatewiki with param setlang=qqq times out. All messages
get parsed recursively until parser-template-loop-warning is reached.
uselang=qqq is already ignored, see RequestContext::sanitizeLangCode.

There is a counterpart to this patch in ULS, where it is changed
to use Language::isSupportedLanguage.

Bug: T104987
Change-Id: Ie77fe18681dfd5f9089fbaa8090dd9cc1c206da4

languages/Language.php

index 93dd239..b698beb 100644 (file)
@@ -254,10 +254,16 @@ class Language {
         * @since 1.21
         */
        public static function isSupportedLanguage( $code ) {
-               return self::isValidBuiltInCode( $code )
-                       && ( is_readable( self::getMessagesFileName( $code ) )
-                               || is_readable( self::getJsonMessagesFileName( $code ) )
-               );
+               if ( !self::isValidBuiltInCode( $code ) ) {
+                       return false;
+               }
+
+               if ( $code === 'qqq' ) {
+                       return false;
+               }
+
+               return is_readable( self::getMessagesFileName( $code ) ) ||
+                       is_readable( self::getJsonMessagesFileName( $code ) );
        }
 
        /**