From 580b05ae5d09c9d5731c20c5a37616feda994287 Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Sat, 1 Mar 2014 21:45:15 +0000 Subject: [PATCH] Strip backslashes, not just forward slashes, from untrailingslashit(). trailingslashit() will now remove any forward or backslashes from the end of a string before appending a forward slash. props knutsp, willmot. fixes #22267. Built from https://develop.svn.wordpress.org/trunk@27344 git-svn-id: http://core.svn.wordpress.org/trunk@27196 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/formatting.php | 19 +++++++++---------- wp-includes/functions.php | 6 +++--- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index 1e8c59835d..9edea6a704 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -1482,35 +1482,34 @@ function backslashit($string) { /** * Appends a trailing slash. * - * Will remove trailing slash if it exists already before adding a trailing - * slash. This prevents double slashing a string or path. + * Will remove trailing forward and backslashes if it exists already before adding + * a trailing forward slash. This prevents double slashing a string or path. * * The primary use of this is for paths and thus should be used for paths. It is * not restricted to paths and offers no specific path support. * * @since 1.2.0 - * @uses untrailingslashit() Unslashes string if it was slashed already. * * @param string $string What to add the trailing slash to. * @return string String with trailing slash added. */ -function trailingslashit($string) { - return untrailingslashit($string) . '/'; +function trailingslashit( $string ) { + return untrailingslashit( $string ) . '/'; } /** - * Removes trailing slash if it exists. + * Removes trailing forward slashes and backslashes if they exist. * * The primary use of this is for paths and thus should be used for paths. It is * not restricted to paths and offers no specific path support. * * @since 2.2.0 * - * @param string $string What to remove the trailing slash from. - * @return string String without the trailing slash. + * @param string $string What to remove the trailing slashes from. + * @return string String without the trailing slashes. */ -function untrailingslashit($string) { - return rtrim($string, '/'); +function untrailingslashit( $string ) { + return rtrim( $string, '/\\' ); } /** diff --git a/wp-includes/functions.php b/wp-includes/functions.php index c5a9fea79f..0e34a5e5d4 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -1455,17 +1455,17 @@ function get_temp_dir() { return trailingslashit(WP_TEMP_DIR); if ( $temp ) - return trailingslashit( rtrim( $temp, '\\' ) ); + return trailingslashit( $temp ); if ( function_exists('sys_get_temp_dir') ) { $temp = sys_get_temp_dir(); if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) - return trailingslashit( rtrim( $temp, '\\' ) ); + return trailingslashit( $temp ); } $temp = ini_get('upload_tmp_dir'); if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) - return trailingslashit( rtrim( $temp, '\\' ) ); + return trailingslashit( $temp ); $temp = WP_CONTENT_DIR . '/'; if ( is_dir( $temp ) && wp_is_writable( $temp ) )