From c47552dc6df14830f4da30548a9313bc85c3385b Mon Sep 17 00:00:00 2001 From: Jeremy Felt Date: Wed, 5 Nov 2014 05:12:22 +0000 Subject: [PATCH] Create new $wp_roles object in install_blog() to avoid protected _init() call Our call to `$wp_roles->_init()` relied on the `__call()` method in `WP_Roles` to handle the link to the protected method. This works back to PHP 5.2.9, when a bug was fixed allowing access to protected methods through this exact approach. `install_blog()` needs a fresh `$wp_roles` object after `populate_roles()` resets everything in its path. We can create this new object from scratch, effectively doing the same thing with the call to `_init()` via the constructor. Fixes #29692 for trunk. Built from https://develop.svn.wordpress.org/trunk@30242 git-svn-id: http://core.svn.wordpress.org/trunk@30242 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/ms-functions.php | 4 +++- wp-includes/version.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/wp-includes/ms-functions.php b/wp-includes/ms-functions.php index df65938923..b0cd44ce8d 100644 --- a/wp-includes/ms-functions.php +++ b/wp-includes/ms-functions.php @@ -1352,7 +1352,9 @@ function install_blog( $blog_id, $blog_title = '' ) { make_db_current_silent( 'blog' ); populate_options(); populate_roles(); - $wp_roles->_init(); + + // populate_roles() clears previous role definitions so we start over. + $wp_roles = new WP_Roles(); $url = untrailingslashit( $url ); diff --git a/wp-includes/version.php b/wp-includes/version.php index 0bdcce667f..788be215cc 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.1-alpha-30241'; +$wp_version = '4.1-alpha-30242'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.