diff --git a/wp-includes/functions-formatting.php b/wp-includes/functions-formatting.php index fa8a4e584..3ad94f5df 100644 --- a/wp-includes/functions-formatting.php +++ b/wp-includes/functions-formatting.php @@ -532,6 +532,16 @@ function addslashes_gpc($gpc) { return $wpdb->escape($gpc); } + +function stripslashes_deep($value) +{ + $value = is_array($value) ? + array_map('stripslashes_deep', $value) : + stripslashes($value); + + return $value; +} + function antispambot($emailaddy, $mailto=0) { $emailNOSPAMaddy = ''; srand ((float) microtime() * 1000000); diff --git a/wp-settings.php b/wp-settings.php index 86db740bf..7439c63b1 100644 --- a/wp-settings.php +++ b/wp-settings.php @@ -138,10 +138,10 @@ require_once(ABSPATH . WPINC . '/locale.php'); // If already slashed, strip. if ( get_magic_quotes_gpc() ) { - $_GET = stripslashes($_GET ); - $_POST = stripslashes($_POST ); - $_COOKIE = stripslashes($_COOKIE); - $_SERVER = stripslashes($_SERVER); + $_GET = stripslashes_deep($_GET ); + $_POST = stripslashes_deep($_POST ); + $_COOKIE = stripslashes_deep($_COOKIE); + $_SERVER = stripslashes_deep($_SERVER); } // Escape with wpdb.