WordPress.org

Make WordPress Core

Changeset 14928


Ignore:
Timestamp:
05/26/2010 03:13:16 AM (10 years ago)
Author:
nacin
Message:

Prevent super admins from shooting themselves in the foot. props jorbin. Checks blog names against an array (filterable) of reserved keywords for subdirectory installs. fixes #13304.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/ms-edit.php

    r14910 r14928  
    149149        if ( ! preg_match( '/(--)/', $blog['domain'] ) && preg_match( '|^([a-zA-Z0-9-])+$|', $blog['domain'] ) )
    150150            $domain = strtolower( $blog['domain'] );
     151
     152        // If not a subdomain install, make sure the domain isn't a reserved word
     153        if ( ! is_subdomain_install() ) {
     154            $subdirectory_reserved_names = apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'blog', 'files', 'feed' ) );
     155            if ( in_array( $domain, $subdirectory_reserved_names ) )
     156                wp_die( sprintf( __('The following words are reserved for use by WordPress functions and cannot be used as blog names: <code>%s</code>' ), implode( '</code>, <code>', $subdirectory_reserved_names ) ) );
     157        }
     158
    151159        $email = sanitize_email( $blog['email'] );
    152160        $title = $blog['title'];
  • trunk/wp-includes/ms-functions.php

    r14911 r14928  
    557557    }
    558558
     559    // On sub dir installs, Some names are so illegal, only a filter can spring them from jail
     560    if (! is_subdomain_install() )
     561        $illegal_names = array_merge($illegal_names, apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'blog', 'files', 'feed' ) ) );
     562
     563
    559564    if ( empty( $blogname ) )
    560565        $errors->add('blogname', __('Please enter a site name'));
Note: See TracChangeset for help on using the changeset viewer.