Check for namespace existence in Title::makeTitleSafe().
authorAlexandre Emsenhuber <ialex.wiki@gmail.com>
Wed, 11 Apr 2012 12:37:27 +0000 (14:37 +0200)
committerAlexandre Emsenhuber <ialex.wiki@gmail.com>
Wed, 11 Apr 2012 12:37:27 +0000 (14:37 +0200)
Namespace existence has to be checked before calling Title::makeName() because otherwise it will fallback to a page with the same name, but in the main namespace which is not what we want here.

Change-Id: I8c087390044c54dd0502c1b8bb9321dfaec6b5f7

includes/Title.php

index 769adb9..1876d75 100644 (file)
@@ -317,6 +317,10 @@ class Title {
         * @return Title the new object, or NULL on an error
         */
        public static function makeTitleSafe( $ns, $title, $fragment = '', $interwiki = '' ) {
+               if ( !MWNamespace::exists( $ns ) ) {
+                       return null;
+               }
+
                $t = new Title();
                $t->mDbkeyform = Title::makeName( $ns, $title, $fragment, $interwiki );
                if ( $t->secureAndSplit() ) {