From 05e249d5ac094cbe236a07364122a0619584b514 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Wed, 9 Sep 2015 03:41:27 +0000 Subject: [PATCH] Ensure that `role` is not empty before adding it in `add_role()` function and methods. Props MikeHansenMe, dannydehaan, michielhab. Fixes #23746. git-svn-id: https://develop.svn.wordpress.org/trunk@33967 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/capabilities-functions.php | 3 +++ src/wp-includes/class-wp-roles.php | 3 ++- src/wp-includes/class-wp-user.php | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/capabilities-functions.php b/src/wp-includes/capabilities-functions.php index 4274fa5383..316b850e7b 100644 --- a/src/wp-includes/capabilities-functions.php +++ b/src/wp-includes/capabilities-functions.php @@ -471,6 +471,9 @@ function get_role( $role ) { * @return WP_Role|null WP_Role object if role is added, null if already exists. */ function add_role( $role, $display_name, $capabilities = array() ) { + if ( empty( $role ) ) { + return; + } return wp_roles()->add_role( $role, $display_name, $capabilities ); } diff --git a/src/wp-includes/class-wp-roles.php b/src/wp-includes/class-wp-roles.php index 643ee63442..a62c97e65e 100644 --- a/src/wp-includes/class-wp-roles.php +++ b/src/wp-includes/class-wp-roles.php @@ -172,8 +172,9 @@ class WP_Roles { * @return WP_Role|void WP_Role object, if role is added. */ public function add_role( $role, $display_name, $capabilities = array() ) { - if ( isset( $this->roles[$role] ) ) + if ( empty( $role ) || isset( $this->roles[ $role ] ) ) { return; + } $this->roles[$role] = array( 'name' => $display_name, diff --git a/src/wp-includes/class-wp-user.php b/src/wp-includes/class-wp-user.php index 4005a6edc4..971021a759 100644 --- a/src/wp-includes/class-wp-user.php +++ b/src/wp-includes/class-wp-user.php @@ -439,6 +439,10 @@ class WP_User { * @param string $role Role name. */ public function add_role( $role ) { + if ( empty( $role ) ) { + return; + } + $this->caps[$role] = true; update_user_meta( $this->ID, $this->cap_key, $this->caps ); $this->get_role_caps();