From: Catrope Date: Wed, 9 May 2012 21:10:33 +0000 (-0700) Subject: Factor out module name validation into a static function X-Git-Tag: 1.31.0-rc.0~23662^2 X-Git-Url: http://git.cyclocoop.org/data/Fool?a=commitdiff_plain;h=4910a61046ce323fd4dde0cb9edbb4ed5a457a9d;p=lhc%2Fweb%2Fwiklou.git Factor out module name validation into a static function Also add the requirement that module names be at most 255 bytes, so they'll fit in the DB fields that we put module names in (md_module, mr_resource, mrl_resource) Change-Id: I7193c9beb7aff4eabfe20db461e6f9032ae994b1 --- diff --git a/includes/resourceloader/ResourceLoader.php b/includes/resourceloader/ResourceLoader.php index 71e68d1ef2..42fd8734e8 100644 --- a/includes/resourceloader/ResourceLoader.php +++ b/includes/resourceloader/ResourceLoader.php @@ -241,9 +241,9 @@ class ResourceLoader { ); } - // Check $name for illegal characters - if ( preg_match( '/[|,!]/', $name ) ) { - throw new MWException( "ResourceLoader module name '$name' is invalid. Names may not contain pipes (|), commas (,) or exclamation marks (!)" ); + // Check $name for validity + if ( !self::isValidModuleName( $name ) ) { + throw new MWException( "ResourceLoader module name '$name' is invalid, see ResourceLoader::isValidModuleName()" ); } // Attach module @@ -1099,4 +1099,17 @@ class ResourceLoader { ksort( $query ); return $query; } + + /** + * Check a module name for validity. + * + * Module names may not contain pipes (|), commas (,) or exclamation marks (!) and can be + * at most 255 bytes. + * + * @param $moduleName string Module name to check + * @return bool Whether $moduleName is a valid module name + */ + public static function isValidModuleName( $moduleName ) { + return !preg_match( '/[|,!]/', $moduleName ) && strlen( $moduleName ) <= 255; + } }