commit bceb9b7adf9bb9fc37d470353af46e33b3edb4e1
Author: Florent Torregrosa <florent.torregrosa@centrale-marseille.fr>
Date:   Thu Mar 19 17:47:34 2015 +0100

    Update core to 7.35

diff --git a/drupal7/CHANGELOG.txt b/drupal7/CHANGELOG.txt
index ef848fb1..e6ede755 100644
--- a/drupal7/CHANGELOG.txt
+++ b/drupal7/CHANGELOG.txt
@@ -1,4 +1,8 @@
 
+Drupal 7.35, 2015-03-18
+----------------------
+- Fixed security issues (multiple vulnerabilities). See SA-CORE-2015-001.
+
 Drupal 7.34, 2014-11-19
 ----------------------
 - Fixed security issues (multiple vulnerabilities). See SA-CORE-2014-006.
diff --git a/drupal7/includes/bootstrap.inc b/drupal7/includes/bootstrap.inc
index 744fc8fe..b33f950f 100644
--- a/drupal7/includes/bootstrap.inc
+++ b/drupal7/includes/bootstrap.inc
@@ -8,7 +8,7 @@
 /**
  * The current system version.
  */
-define('VERSION', '7.34');
+define('VERSION', '7.35');
 
 /**
  * Core API compatibility.
@@ -2497,6 +2497,26 @@ function _drupal_bootstrap_variables() {
   // Load bootstrap modules.
   require_once DRUPAL_ROOT . '/includes/module.inc';
   module_load_all(TRUE);
+
+  // Sanitize the destination parameter (which is often used for redirects) to
+  // prevent open redirect attacks leading to other domains. Sanitize both
+  // $_GET['destination'] and $_REQUEST['destination'] to protect code that
+  // relies on either, but do not sanitize $_POST to avoid interfering with
+  // unrelated form submissions. The sanitization happens here because
+  // url_is_external() requires the variable system to be available.
+  if (isset($_GET['destination']) || isset($_REQUEST['destination'])) {
+    require_once DRUPAL_ROOT . '/includes/common.inc';
+    // If the destination is an external URL, remove it.
+    if (isset($_GET['destination']) && url_is_external($_GET['destination'])) {
+      unset($_GET['destination']);
+      unset($_REQUEST['destination']);
+    }
+    // If there's still something in $_REQUEST['destination'] that didn't come
+    // from $_GET, check it too.
+    if (isset($_REQUEST['destination']) && (!isset($_GET['destination']) || $_REQUEST['destination'] != $_GET['destination']) && url_is_external($_REQUEST['destination'])) {
+      unset($_REQUEST['destination']);
+    }
+  }
 }
 
 /**
diff --git a/drupal7/includes/common.inc b/drupal7/includes/common.inc
index 20cc82be..ad2a3454 100644
--- a/drupal7/includes/common.inc
+++ b/drupal7/includes/common.inc
@@ -2214,14 +2214,20 @@ function url($path = NULL, array $options = array()) {
     'prefix' => ''
   );
 
+  // A duplicate of the code from url_is_external() to avoid needing another
+  // function call, since performance inside url() is critical.
   if (!isset($options['external'])) {
-    // Return an external link if $path contains an allowed absolute URL. Only
-    // call the slow drupal_strip_dangerous_protocols() if $path contains a ':'
-    // before any / ? or #. Note: we could use url_is_external($path) here, but
-    // that would require another function call, and performance inside url() is
-    // critical.
+    // Return an external link if $path contains an allowed absolute URL. Avoid
+    // calling drupal_strip_dangerous_protocols() if there is any slash (/),
+    // hash (#) or question_mark (?) before the colon (:) occurrence - if any -
+    // as this would clearly mean it is not a URL. If the path starts with 2
+    // slashes then it is always considered an external URL without an explicit
+    // protocol part.
     $colonpos = strpos($path, ':');
-    $options['external'] = ($colonpos !== FALSE && !preg_match('![/?#]!', substr($path, 0, $colonpos)) && drupal_strip_dangerous_protocols($path) == $path);
+    $options['external'] = (strpos($path, '//') === 0)
+      || ($colonpos !== FALSE
+        && !preg_match('![/?#]!', substr($path, 0, $colonpos))
+        && drupal_strip_dangerous_protocols($path) == $path);
   }
 
   // Preserve the original path before altering or aliasing.
@@ -2259,6 +2265,11 @@ function url($path = NULL, array $options = array()) {
     return $path . $options['fragment'];
   }
 
+  // Strip leading slashes from internal paths to prevent them becoming external
+  // URLs without protocol. /example.com should not be turned into
+  // //example.com.
+  $path = ltrim($path, '/');
+
   global $base_url, $base_secure_url, $base_insecure_url;
 
   // The base_url might be rewritten from the language rewrite in domain mode.
@@ -2336,10 +2347,15 @@ function url($path = NULL, array $options = array()) {
  */
 function url_is_external($path) {
   $colonpos = strpos($path, ':');
-  // Avoid calling drupal_strip_dangerous_protocols() if there is any
-  // slash (/), hash (#) or question_mark (?) before the colon (:)
-  // occurrence - if any - as this would clearly mean it is not a URL.
-  return $colonpos !== FALSE && !preg_match('![/?#]!', substr($path, 0, $colonpos)) && drupal_strip_dangerous_protocols($path) == $path;
+  // Avoid calling drupal_strip_dangerous_protocols() if there is any slash (/),
+  // hash (#) or question_mark (?) before the colon (:) occurrence - if any - as
+  // this would clearly mean it is not a URL. If the path starts with 2 slashes
+  // then it is always considered an external URL without an explicit protocol
+  // part.
+  return (strpos($path, '//') === 0)
+    || ($colonpos !== FALSE
+      && !preg_match('![/?#]!', substr($path, 0, $colonpos))
+      && drupal_strip_dangerous_protocols($path) == $path);
 }
 
 /**
@@ -2636,7 +2652,10 @@ function drupal_deliver_html_page($page_callback_result) {
 
         // Keep old path for reference, and to allow forms to redirect to it.
         if (!isset($_GET['destination'])) {
-          $_GET['destination'] = $_GET['q'];
+          // Make sure that the current path is not interpreted as external URL.
+          if (!url_is_external($_GET['q'])) {
+            $_GET['destination'] = $_GET['q'];
+          }
         }
 
         $path = drupal_get_normal_path(variable_get('site_404', ''));
@@ -2665,7 +2684,10 @@ function drupal_deliver_html_page($page_callback_result) {
 
         // Keep old path for reference, and to allow forms to redirect to it.
         if (!isset($_GET['destination'])) {
-          $_GET['destination'] = $_GET['q'];
+          // Make sure that the current path is not interpreted as external URL.
+          if (!url_is_external($_GET['q'])) {
+            $_GET['destination'] = $_GET['q'];
+          }
         }
 
         $path = drupal_get_normal_path(variable_get('site_403', ''));
diff --git a/drupal7/modules/aggregator/aggregator.info b/drupal7/modules/aggregator/aggregator.info
index 990f7e93..b63fe6cf 100644
--- a/drupal7/modules/aggregator/aggregator.info
+++ b/drupal7/modules/aggregator/aggregator.info
@@ -7,8 +7,8 @@ files[] = aggregator.test
 configure = admin/config/services/aggregator/settings
 stylesheets[all][] = aggregator.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/aggregator/tests/aggregator_test.info b/drupal7/modules/aggregator/tests/aggregator_test.info
index 530c944c..7250ac41 100644
--- a/drupal7/modules/aggregator/tests/aggregator_test.info
+++ b/drupal7/modules/aggregator/tests/aggregator_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/block/block.info b/drupal7/modules/block/block.info
index a80ba4e9..36765c98 100644
--- a/drupal7/modules/block/block.info
+++ b/drupal7/modules/block/block.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = block.test
 configure = admin/structure/block
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/block/tests/block_test.info b/drupal7/modules/block/tests/block_test.info
index 7644f36d..f8503da4 100644
--- a/drupal7/modules/block/tests/block_test.info
+++ b/drupal7/modules/block/tests/block_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/block/tests/themes/block_test_theme/block_test_theme.info b/drupal7/modules/block/tests/themes/block_test_theme/block_test_theme.info
index 899c836d..42c11a5b 100644
--- a/drupal7/modules/block/tests/themes/block_test_theme/block_test_theme.info
+++ b/drupal7/modules/block/tests/themes/block_test_theme/block_test_theme.info
@@ -13,8 +13,8 @@ regions[footer] = Footer
 regions[highlighted] = Highlighted
 regions[help] = Help
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/blog/blog.info b/drupal7/modules/blog/blog.info
index 8f4f7f79..8dc53ac9 100644
--- a/drupal7/modules/blog/blog.info
+++ b/drupal7/modules/blog/blog.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = blog.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/book/book.info b/drupal7/modules/book/book.info
index 4e4d31e1..a8997888 100644
--- a/drupal7/modules/book/book.info
+++ b/drupal7/modules/book/book.info
@@ -7,8 +7,8 @@ files[] = book.test
 configure = admin/content/book/settings
 stylesheets[all][] = book.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/color/color.info b/drupal7/modules/color/color.info
index 88d7cffb..9a21379c 100644
--- a/drupal7/modules/color/color.info
+++ b/drupal7/modules/color/color.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = color.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/comment/comment.info b/drupal7/modules/comment/comment.info
index ac610607..864286da 100644
--- a/drupal7/modules/comment/comment.info
+++ b/drupal7/modules/comment/comment.info
@@ -9,8 +9,8 @@ files[] = comment.test
 configure = admin/content/comment
 stylesheets[all][] = comment.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/contact/contact.info b/drupal7/modules/contact/contact.info
index b7f3a7cb..f2c5de1f 100644
--- a/drupal7/modules/contact/contact.info
+++ b/drupal7/modules/contact/contact.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = contact.test
 configure = admin/structure/contact
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/contextual/contextual.info b/drupal7/modules/contextual/contextual.info
index 42266552..ef6380a8 100644
--- a/drupal7/modules/contextual/contextual.info
+++ b/drupal7/modules/contextual/contextual.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = contextual.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/dashboard/dashboard.info b/drupal7/modules/dashboard/dashboard.info
index c852d47f..00e3b30f 100644
--- a/drupal7/modules/dashboard/dashboard.info
+++ b/drupal7/modules/dashboard/dashboard.info
@@ -7,8 +7,8 @@ files[] = dashboard.test
 dependencies[] = block
 configure = admin/dashboard/customize
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/dblog/dblog.info b/drupal7/modules/dblog/dblog.info
index 6445d421..1057d415 100644
--- a/drupal7/modules/dblog/dblog.info
+++ b/drupal7/modules/dblog/dblog.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = dblog.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/field.info b/drupal7/modules/field/field.info
index b885d609..b6b5e688 100644
--- a/drupal7/modules/field/field.info
+++ b/drupal7/modules/field/field.info
@@ -11,8 +11,8 @@ dependencies[] = field_sql_storage
 required = TRUE
 stylesheets[all][] = theme/field.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info b/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info
index c69226c1..6f04effb 100644
--- a/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info
+++ b/drupal7/modules/field/modules/field_sql_storage/field_sql_storage.info
@@ -7,8 +7,8 @@ dependencies[] = field
 files[] = field_sql_storage.test
 required = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/modules/list/list.info b/drupal7/modules/field/modules/list/list.info
index 3c9807f1..97797629 100644
--- a/drupal7/modules/field/modules/list/list.info
+++ b/drupal7/modules/field/modules/list/list.info
@@ -7,8 +7,8 @@ dependencies[] = field
 dependencies[] = options
 files[] = tests/list.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/modules/list/tests/list_test.info b/drupal7/modules/field/modules/list/tests/list_test.info
index 09f553db..fa5e2860 100644
--- a/drupal7/modules/field/modules/list/tests/list_test.info
+++ b/drupal7/modules/field/modules/list/tests/list_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/modules/number/number.info b/drupal7/modules/field/modules/number/number.info
index 26527021..419e31f1 100644
--- a/drupal7/modules/field/modules/number/number.info
+++ b/drupal7/modules/field/modules/number/number.info
@@ -6,8 +6,8 @@ core = 7.x
 dependencies[] = field
 files[] = number.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/modules/options/options.info b/drupal7/modules/field/modules/options/options.info
index 17642a1e..17b78bfd 100644
--- a/drupal7/modules/field/modules/options/options.info
+++ b/drupal7/modules/field/modules/options/options.info
@@ -6,8 +6,8 @@ core = 7.x
 dependencies[] = field
 files[] = options.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/modules/text/text.info b/drupal7/modules/field/modules/text/text.info
index 4d3afd34..9651c41b 100644
--- a/drupal7/modules/field/modules/text/text.info
+++ b/drupal7/modules/field/modules/text/text.info
@@ -7,8 +7,8 @@ dependencies[] = field
 files[] = text.test
 required = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field/tests/field_test.info b/drupal7/modules/field/tests/field_test.info
index a47d95f8..a4aa68c7 100644
--- a/drupal7/modules/field/tests/field_test.info
+++ b/drupal7/modules/field/tests/field_test.info
@@ -6,8 +6,8 @@ files[] = field_test.entity.inc
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/field_ui/field_ui.info b/drupal7/modules/field_ui/field_ui.info
index afb55d2c..8fcd7e5d 100644
--- a/drupal7/modules/field_ui/field_ui.info
+++ b/drupal7/modules/field_ui/field_ui.info
@@ -6,8 +6,8 @@ core = 7.x
 dependencies[] = field
 files[] = field_ui.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/file/file.info b/drupal7/modules/file/file.info
index 6ac9f888..cf9170df 100644
--- a/drupal7/modules/file/file.info
+++ b/drupal7/modules/file/file.info
@@ -6,8 +6,8 @@ core = 7.x
 dependencies[] = field
 files[] = tests/file.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/file/tests/file_module_test.info b/drupal7/modules/file/tests/file_module_test.info
index 5f0bbb2f..f55d2ea4 100644
--- a/drupal7/modules/file/tests/file_module_test.info
+++ b/drupal7/modules/file/tests/file_module_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/filter/filter.info b/drupal7/modules/filter/filter.info
index b3a51464..95b804d9 100644
--- a/drupal7/modules/filter/filter.info
+++ b/drupal7/modules/filter/filter.info
@@ -7,8 +7,8 @@ files[] = filter.test
 required = TRUE
 configure = admin/config/content/formats
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/forum/forum.info b/drupal7/modules/forum/forum.info
index 56870408..e33b24c4 100644
--- a/drupal7/modules/forum/forum.info
+++ b/drupal7/modules/forum/forum.info
@@ -9,8 +9,8 @@ files[] = forum.test
 configure = admin/structure/forum
 stylesheets[all][] = forum.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/help/help.info b/drupal7/modules/help/help.info
index 8db8096f..0553ee0d 100644
--- a/drupal7/modules/help/help.info
+++ b/drupal7/modules/help/help.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = help.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/image/image.info b/drupal7/modules/image/image.info
index 99a2375e..db5fa3cf 100644
--- a/drupal7/modules/image/image.info
+++ b/drupal7/modules/image/image.info
@@ -7,8 +7,8 @@ dependencies[] = file
 files[] = image.test
 configure = admin/config/media/image-styles
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/image/tests/image_module_test.info b/drupal7/modules/image/tests/image_module_test.info
index aad82924..5dc38de9 100644
--- a/drupal7/modules/image/tests/image_module_test.info
+++ b/drupal7/modules/image/tests/image_module_test.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = image_module_test.module
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/locale/locale.info b/drupal7/modules/locale/locale.info
index 2f6e408b..f4817d42 100644
--- a/drupal7/modules/locale/locale.info
+++ b/drupal7/modules/locale/locale.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = locale.test
 configure = admin/config/regional/language
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/locale/tests/locale_test.info b/drupal7/modules/locale/tests/locale_test.info
index 3daa74b4..6339704d 100644
--- a/drupal7/modules/locale/tests/locale_test.info
+++ b/drupal7/modules/locale/tests/locale_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/menu/menu.info b/drupal7/modules/menu/menu.info
index 14db656a..243b431e 100644
--- a/drupal7/modules/menu/menu.info
+++ b/drupal7/modules/menu/menu.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = menu.test
 configure = admin/structure/menu
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/node/node.info b/drupal7/modules/node/node.info
index 964ec402..27aa982f 100644
--- a/drupal7/modules/node/node.info
+++ b/drupal7/modules/node/node.info
@@ -9,8 +9,8 @@ required = TRUE
 configure = admin/structure/types
 stylesheets[all][] = node.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/node/tests/node_access_test.info b/drupal7/modules/node/tests/node_access_test.info
index 17946efd..3d6f0e0a 100644
--- a/drupal7/modules/node/tests/node_access_test.info
+++ b/drupal7/modules/node/tests/node_access_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/node/tests/node_test.info b/drupal7/modules/node/tests/node_test.info
index b9b946e8..8051dedc 100644
--- a/drupal7/modules/node/tests/node_test.info
+++ b/drupal7/modules/node/tests/node_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/node/tests/node_test_exception.info b/drupal7/modules/node/tests/node_test_exception.info
index 5db96296..efca6cc0 100644
--- a/drupal7/modules/node/tests/node_test_exception.info
+++ b/drupal7/modules/node/tests/node_test_exception.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/openid/openid.info b/drupal7/modules/openid/openid.info
index 1b97354b..c37a7660 100644
--- a/drupal7/modules/openid/openid.info
+++ b/drupal7/modules/openid/openid.info
@@ -5,8 +5,8 @@ package = Core
 core = 7.x
 files[] = openid.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/openid/tests/openid_test.info b/drupal7/modules/openid/tests/openid_test.info
index a33d5963..4c0a11b1 100644
--- a/drupal7/modules/openid/tests/openid_test.info
+++ b/drupal7/modules/openid/tests/openid_test.info
@@ -6,8 +6,8 @@ core = 7.x
 dependencies[] = openid
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/overlay/overlay.info b/drupal7/modules/overlay/overlay.info
index 269e323e..10b840c6 100644
--- a/drupal7/modules/overlay/overlay.info
+++ b/drupal7/modules/overlay/overlay.info
@@ -4,8 +4,8 @@ package = Core
 version = VERSION
 core = 7.x
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/path/path.info b/drupal7/modules/path/path.info
index 3445b7c6..316e2236 100644
--- a/drupal7/modules/path/path.info
+++ b/drupal7/modules/path/path.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = path.test
 configure = admin/config/search/path
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/php/php.info b/drupal7/modules/php/php.info
index 1fcb89d5..4a5f4892 100644
--- a/drupal7/modules/php/php.info
+++ b/drupal7/modules/php/php.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = php.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/poll/poll.info b/drupal7/modules/poll/poll.info
index 101b99e2..91a452a2 100644
--- a/drupal7/modules/poll/poll.info
+++ b/drupal7/modules/poll/poll.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = poll.test
 stylesheets[all][] = poll.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/profile/profile.info b/drupal7/modules/profile/profile.info
index 593be3ee..3a08c06c 100644
--- a/drupal7/modules/profile/profile.info
+++ b/drupal7/modules/profile/profile.info
@@ -11,8 +11,8 @@ configure = admin/config/people/profile
 ; See user_system_info_alter().
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/rdf/rdf.info b/drupal7/modules/rdf/rdf.info
index e5c963cd..0dc156c1 100644
--- a/drupal7/modules/rdf/rdf.info
+++ b/drupal7/modules/rdf/rdf.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 files[] = rdf.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/rdf/tests/rdf_test.info b/drupal7/modules/rdf/tests/rdf_test.info
index 7602a942..070b6096 100644
--- a/drupal7/modules/rdf/tests/rdf_test.info
+++ b/drupal7/modules/rdf/tests/rdf_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/search/search.info b/drupal7/modules/search/search.info
index 0a1bcc2d..bce90133 100644
--- a/drupal7/modules/search/search.info
+++ b/drupal7/modules/search/search.info
@@ -8,8 +8,8 @@ files[] = search.test
 configure = admin/config/search/settings
 stylesheets[all][] = search.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/search/tests/search_embedded_form.info b/drupal7/modules/search/tests/search_embedded_form.info
index 2c789cc3..6aa3ba24 100644
--- a/drupal7/modules/search/tests/search_embedded_form.info
+++ b/drupal7/modules/search/tests/search_embedded_form.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/search/tests/search_extra_type.info b/drupal7/modules/search/tests/search_extra_type.info
index af8ba670..f3758d97 100644
--- a/drupal7/modules/search/tests/search_extra_type.info
+++ b/drupal7/modules/search/tests/search_extra_type.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/shortcut/shortcut.info b/drupal7/modules/shortcut/shortcut.info
index 2aa55da7..1411a06f 100644
--- a/drupal7/modules/shortcut/shortcut.info
+++ b/drupal7/modules/shortcut/shortcut.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = shortcut.test
 configure = admin/config/user-interface/shortcut
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/simpletest.info b/drupal7/modules/simpletest/simpletest.info
index 4c6fcbe3..b3f78f43 100644
--- a/drupal7/modules/simpletest/simpletest.info
+++ b/drupal7/modules/simpletest/simpletest.info
@@ -56,8 +56,8 @@ files[] = tests/upgrade/update.trigger.test
 files[] = tests/upgrade/update.field.test
 files[] = tests/upgrade/update.user.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/actions_loop_test.info b/drupal7/modules/simpletest/tests/actions_loop_test.info
index e3384381..8c9290b6 100644
--- a/drupal7/modules/simpletest/tests/actions_loop_test.info
+++ b/drupal7/modules/simpletest/tests/actions_loop_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/ajax_forms_test.info b/drupal7/modules/simpletest/tests/ajax_forms_test.info
index db582d41..9381926d 100644
--- a/drupal7/modules/simpletest/tests/ajax_forms_test.info
+++ b/drupal7/modules/simpletest/tests/ajax_forms_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/ajax_test.info b/drupal7/modules/simpletest/tests/ajax_test.info
index 736c0804..5a28d36a 100644
--- a/drupal7/modules/simpletest/tests/ajax_test.info
+++ b/drupal7/modules/simpletest/tests/ajax_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/batch_test.info b/drupal7/modules/simpletest/tests/batch_test.info
index 4ee2142e..0932dea0 100644
--- a/drupal7/modules/simpletest/tests/batch_test.info
+++ b/drupal7/modules/simpletest/tests/batch_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/bootstrap.test b/drupal7/modules/simpletest/tests/bootstrap.test
index f723c630..14523f28 100644
--- a/drupal7/modules/simpletest/tests/bootstrap.test
+++ b/drupal7/modules/simpletest/tests/bootstrap.test
@@ -546,3 +546,85 @@ class BootstrapOverrideServerVariablesTestCase extends DrupalUnitTestCase {
     }
   }
 }
+
+/**
+ * Tests for $_GET['destination'] and $_REQUEST['destination'] validation.
+ */
+class BootstrapDestinationTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'URL destination validation',
+      'description' => 'Test that $_GET[\'destination\'] and $_REQUEST[\'destination\'] cannot contain external URLs.',
+      'group' => 'Bootstrap',
+    );
+  }
+
+  function setUp() {
+    parent::setUp('system_test');
+  }
+
+  /**
+   * Tests that $_GET/$_REQUEST['destination'] only contain internal URLs.
+   *
+   * @see _drupal_bootstrap_variables()
+   * @see system_test_get_destination()
+   * @see system_test_request_destination()
+   */
+  public function testDestination() {
+    $test_cases = array(
+      array(
+        'input' => 'node',
+        'output' => 'node',
+        'message' => "Standard internal example node path is present in the 'destination' parameter.",
+      ),
+      array(
+        'input' => '/example.com',
+        'output' => '/example.com',
+        'message' => 'Internal path with one leading slash is allowed.',
+      ),
+      array(
+        'input' => '//example.com/test',
+        'output' => '',
+        'message' => 'External URL without scheme is not allowed.',
+      ),
+      array(
+        'input' => 'example:test',
+        'output' => 'example:test',
+        'message' => 'Internal URL using a colon is allowed.',
+      ),
+      array(
+        'input' => 'http://example.com',
+        'output' => '',
+        'message' => 'External URL is not allowed.',
+      ),
+      array(
+        'input' => 'javascript:alert(0)',
+        'output' => 'javascript:alert(0)',
+        'message' => 'Javascript URL is allowed because it is treated as an internal URL.',
+      ),
+    );
+    foreach ($test_cases as $test_case) {
+      // Test $_GET['destination'].
+      $this->drupalGet('system-test/get-destination', array('query' => array('destination' => $test_case['input'])));
+      $this->assertIdentical($test_case['output'], $this->drupalGetContent(), $test_case['message']);
+      // Test $_REQUEST['destination']. There's no form to submit to, so
+      // drupalPost() won't work here; this just tests a direct $_POST request
+      // instead.
+      $curl_parameters = array(
+        CURLOPT_URL => $this->getAbsoluteUrl('system-test/request-destination'),
+        CURLOPT_POST => TRUE,
+        CURLOPT_POSTFIELDS => 'destination=' . urlencode($test_case['input']),
+        CURLOPT_HTTPHEADER => array(),
+      );
+      $post_output = $this->curlExec($curl_parameters);
+      $this->assertIdentical($test_case['output'], $post_output, $test_case['message']);
+    }
+
+    // Make sure that 404 pages do not populate $_GET['destination'] with
+    // external URLs.
+    variable_set('site_404', 'system-test/get-destination');
+    $this->drupalGet('http://example.com', array('external' => FALSE));
+    $this->assertIdentical('', $this->drupalGetContent(), 'External URL is not allowed on 404 pages.');
+  }
+}
diff --git a/drupal7/modules/simpletest/tests/common.test b/drupal7/modules/simpletest/tests/common.test
index eebfdbe4..b8ad0cca 100644
--- a/drupal7/modules/simpletest/tests/common.test
+++ b/drupal7/modules/simpletest/tests/common.test
@@ -209,7 +209,16 @@ class CommonURLUnitTest extends DrupalWebTestCase {
     // Test that drupal can recognize an absolute URL. Used to prevent attack vectors.
     $this->assertTrue(url_is_external($url), 'Correctly identified an external URL.');
 
+    // External URL without an explicit protocol.
+    $url = '//drupal.org/foo/bar?foo=bar&bar=baz&baz#foo';
+    $this->assertTrue(url_is_external($url), 'Correctly identified an external URL without a protocol part.');
+
+    // Internal URL starting with a slash.
+    $url = '/drupal.org';
+    $this->assertFalse(url_is_external($url), 'Correctly identified an internal URL with a leading slash.');
+
     // Test the parsing of absolute URLs.
+    $url = 'http://drupal.org/foo/bar?foo=bar&bar=baz&baz#foo';
     $result = array(
       'path' => 'http://drupal.org/foo/bar',
       'query' => array('foo' => 'bar', 'bar' => 'baz', 'baz' => ''),
@@ -349,6 +358,17 @@ class CommonURLUnitTest extends DrupalWebTestCase {
     $query = array($this->randomName(5) => $this->randomName(5));
     $result = url($url, array('query' => $query));
     $this->assertEqual($url . '&' . http_build_query($query, '', '&'), $result, 'External URL query string can be extended with a custom query string in $options.');
+
+    // Verify that an internal URL does not result in an external URL without
+    // protocol part.
+    $url = '/drupal.org';
+    $result = url($url);
+    $this->assertTrue(strpos($result, '//') === FALSE, 'Internal URL does not turn into an external URL.');
+
+    // Verify that an external URL without protocol part is recognized as such.
+    $url = '//drupal.org';
+    $result = url($url);
+    $this->assertEqual($url, $result, 'External URL without protocol is not altered.');
   }
 }
 
diff --git a/drupal7/modules/simpletest/tests/common_test.info b/drupal7/modules/simpletest/tests/common_test.info
index c8f4aeae..91507769 100644
--- a/drupal7/modules/simpletest/tests/common_test.info
+++ b/drupal7/modules/simpletest/tests/common_test.info
@@ -7,8 +7,8 @@ stylesheets[all][] = common_test.css
 stylesheets[print][] = common_test.print.css
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/common_test_cron_helper.info b/drupal7/modules/simpletest/tests/common_test_cron_helper.info
index 780e5449..3c8cb57d 100644
--- a/drupal7/modules/simpletest/tests/common_test_cron_helper.info
+++ b/drupal7/modules/simpletest/tests/common_test_cron_helper.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/database_test.info b/drupal7/modules/simpletest/tests/database_test.info
index d755deb0..2b8c4e05 100644
--- a/drupal7/modules/simpletest/tests/database_test.info
+++ b/drupal7/modules/simpletest/tests/database_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
index 9baa2232..78e3aa04 100644
--- a/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
+++ b/drupal7/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
index 9a6ea5a1..cf937487 100644
--- a/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
+++ b/drupal7/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/entity_cache_test.info b/drupal7/modules/simpletest/tests/entity_cache_test.info
index 892f2a62..931e83c7 100644
--- a/drupal7/modules/simpletest/tests/entity_cache_test.info
+++ b/drupal7/modules/simpletest/tests/entity_cache_test.info
@@ -6,8 +6,8 @@ core = 7.x
 dependencies[] = entity_cache_test_dependency
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info b/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info
index f1e23800..a45b7d6a 100644
--- a/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info
+++ b/drupal7/modules/simpletest/tests/entity_cache_test_dependency.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/entity_crud_hook_test.info b/drupal7/modules/simpletest/tests/entity_crud_hook_test.info
index 80477669..21801707 100644
--- a/drupal7/modules/simpletest/tests/entity_crud_hook_test.info
+++ b/drupal7/modules/simpletest/tests/entity_crud_hook_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/entity_query_access_test.info b/drupal7/modules/simpletest/tests/entity_query_access_test.info
index 25da2194..71acab7a 100644
--- a/drupal7/modules/simpletest/tests/entity_query_access_test.info
+++ b/drupal7/modules/simpletest/tests/entity_query_access_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/error_test.info b/drupal7/modules/simpletest/tests/error_test.info
index 537af89a..5115966a 100644
--- a/drupal7/modules/simpletest/tests/error_test.info
+++ b/drupal7/modules/simpletest/tests/error_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/file_test.info b/drupal7/modules/simpletest/tests/file_test.info
index dbeb7505..4e0d548b 100644
--- a/drupal7/modules/simpletest/tests/file_test.info
+++ b/drupal7/modules/simpletest/tests/file_test.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = file_test.module
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/filter_test.info b/drupal7/modules/simpletest/tests/filter_test.info
index d30cfa5a..b9458da8 100644
--- a/drupal7/modules/simpletest/tests/filter_test.info
+++ b/drupal7/modules/simpletest/tests/filter_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/form_test.info b/drupal7/modules/simpletest/tests/form_test.info
index 406bcd27..4ea6edaf 100644
--- a/drupal7/modules/simpletest/tests/form_test.info
+++ b/drupal7/modules/simpletest/tests/form_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/image_test.info b/drupal7/modules/simpletest/tests/image_test.info
index b851329d..dcb7d50e 100644
--- a/drupal7/modules/simpletest/tests/image_test.info
+++ b/drupal7/modules/simpletest/tests/image_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/menu_test.info b/drupal7/modules/simpletest/tests/menu_test.info
index e7509b5e..74b0593f 100644
--- a/drupal7/modules/simpletest/tests/menu_test.info
+++ b/drupal7/modules/simpletest/tests/menu_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/module_test.info b/drupal7/modules/simpletest/tests/module_test.info
index de28a42c..be45da2a 100644
--- a/drupal7/modules/simpletest/tests/module_test.info
+++ b/drupal7/modules/simpletest/tests/module_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/path_test.info b/drupal7/modules/simpletest/tests/path_test.info
index ba7fbd65..b3ec33f5 100644
--- a/drupal7/modules/simpletest/tests/path_test.info
+++ b/drupal7/modules/simpletest/tests/path_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/psr_0_test/psr_0_test.info b/drupal7/modules/simpletest/tests/psr_0_test/psr_0_test.info
index 20e83202..15a72303 100644
--- a/drupal7/modules/simpletest/tests/psr_0_test/psr_0_test.info
+++ b/drupal7/modules/simpletest/tests/psr_0_test/psr_0_test.info
@@ -5,8 +5,8 @@ core = 7.x
 hidden = TRUE
 package = Testing
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/requirements1_test.info b/drupal7/modules/simpletest/tests/requirements1_test.info
index 7d6b0114..ef1f7e97 100644
--- a/drupal7/modules/simpletest/tests/requirements1_test.info
+++ b/drupal7/modules/simpletest/tests/requirements1_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/requirements2_test.info b/drupal7/modules/simpletest/tests/requirements2_test.info
index af0032d6..9c233c34 100644
--- a/drupal7/modules/simpletest/tests/requirements2_test.info
+++ b/drupal7/modules/simpletest/tests/requirements2_test.info
@@ -7,8 +7,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/session_test.info b/drupal7/modules/simpletest/tests/session_test.info
index 5851c3bb..a7adcaf0 100644
--- a/drupal7/modules/simpletest/tests/session_test.info
+++ b/drupal7/modules/simpletest/tests/session_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_dependencies_test.info b/drupal7/modules/simpletest/tests/system_dependencies_test.info
index 8c198a06..9ce864c4 100644
--- a/drupal7/modules/simpletest/tests/system_dependencies_test.info
+++ b/drupal7/modules/simpletest/tests/system_dependencies_test.info
@@ -6,8 +6,8 @@ core = 7.x
 hidden = TRUE
 dependencies[] = _missing_dependency
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info b/drupal7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info
index cfa6983f..f72da43a 100644
--- a/drupal7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info
+++ b/drupal7/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info
@@ -6,8 +6,8 @@ core = 7.x
 hidden = TRUE
 dependencies[] = system_incompatible_core_version_test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_incompatible_core_version_test.info b/drupal7/modules/simpletest/tests/system_incompatible_core_version_test.info
index 976bfe2f..d575363a 100644
--- a/drupal7/modules/simpletest/tests/system_incompatible_core_version_test.info
+++ b/drupal7/modules/simpletest/tests/system_incompatible_core_version_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 5.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info b/drupal7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info
index 3eb98492..ac867602 100644
--- a/drupal7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info
+++ b/drupal7/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info
@@ -7,8 +7,8 @@ hidden = TRUE
 ; system_incompatible_module_version_test declares version 1.0
 dependencies[] = system_incompatible_module_version_test (>2.0)
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_incompatible_module_version_test.info b/drupal7/modules/simpletest/tests/system_incompatible_module_version_test.info
index be297a36..42c63655 100644
--- a/drupal7/modules/simpletest/tests/system_incompatible_module_version_test.info
+++ b/drupal7/modules/simpletest/tests/system_incompatible_module_version_test.info
@@ -5,8 +5,8 @@ version = 1.0
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_test.info b/drupal7/modules/simpletest/tests/system_test.info
index af0eeae7..d8de9348 100644
--- a/drupal7/modules/simpletest/tests/system_test.info
+++ b/drupal7/modules/simpletest/tests/system_test.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = system_test.module
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/system_test.module b/drupal7/modules/simpletest/tests/system_test.module
index 2eda351e..c0eed034 100644
--- a/drupal7/modules/simpletest/tests/system_test.module
+++ b/drupal7/modules/simpletest/tests/system_test.module
@@ -106,6 +106,20 @@ function system_test_menu() {
     'type' => MENU_CALLBACK,
   );
 
+  $items['system-test/get-destination'] = array(
+    'title' => 'Test $_GET[\'destination\']',
+    'page callback' => 'system_test_get_destination',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+
+  $items['system-test/request-destination'] = array(
+    'title' => 'Test $_REQUEST[\'destination\']',
+    'page callback' => 'system_test_request_destination',
+    'access callback' => TRUE,
+    'type' => MENU_CALLBACK,
+  );
+
   return $items;
 }
 
@@ -420,3 +434,27 @@ function system_test_authorize_init_page($page_title) {
   system_authorized_init('system_test_authorize_run', drupal_get_path('module', 'system_test') . '/system_test.module', array(), $page_title);
   drupal_goto($authorize_url);
 }
+
+/**
+ * Page callback to print out $_GET['destination'] for testing.
+ */
+function system_test_get_destination() {
+  if (isset($_GET['destination'])) {
+    print $_GET['destination'];
+  }
+  // No need to render the whole page, we are just interested in this bit of
+  // information.
+  exit;
+}
+
+/**
+ * Page callback to print out $_REQUEST['destination'] for testing.
+ */
+function system_test_request_destination() {
+  if (isset($_REQUEST['destination'])) {
+    print $_REQUEST['destination'];
+  }
+  // No need to render the whole page, we are just interested in this bit of
+  // information.
+  exit;
+}
diff --git a/drupal7/modules/simpletest/tests/taxonomy_test.info b/drupal7/modules/simpletest/tests/taxonomy_test.info
index e6d525fb..d9fe15cf 100644
--- a/drupal7/modules/simpletest/tests/taxonomy_test.info
+++ b/drupal7/modules/simpletest/tests/taxonomy_test.info
@@ -6,8 +6,8 @@ core = 7.x
 hidden = TRUE
 dependencies[] = taxonomy
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/theme_test.info b/drupal7/modules/simpletest/tests/theme_test.info
index 49696626..2d20d110 100644
--- a/drupal7/modules/simpletest/tests/theme_test.info
+++ b/drupal7/modules/simpletest/tests/theme_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info b/drupal7/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info
index 534537e3..778e369e 100644
--- a/drupal7/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info
+++ b/drupal7/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info
@@ -6,8 +6,8 @@ hidden = TRUE
 settings[basetheme_only] = base theme value
 settings[subtheme_override] = base theme value
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info b/drupal7/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info
index 3797325b..c204766a 100644
--- a/drupal7/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info
+++ b/drupal7/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info
@@ -6,8 +6,8 @@ hidden = TRUE
 
 settings[subtheme_override] = subtheme value
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/themes/test_theme/test_theme.info b/drupal7/modules/simpletest/tests/themes/test_theme/test_theme.info
index c6bf3406..32d4ba50 100644
--- a/drupal7/modules/simpletest/tests/themes/test_theme/test_theme.info
+++ b/drupal7/modules/simpletest/tests/themes/test_theme/test_theme.info
@@ -17,8 +17,8 @@ stylesheets[all][] = system.base.css
 
 settings[theme_test_setting] = default value
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/update_script_test.info b/drupal7/modules/simpletest/tests/update_script_test.info
index ab974c51..24aa5bdf 100644
--- a/drupal7/modules/simpletest/tests/update_script_test.info
+++ b/drupal7/modules/simpletest/tests/update_script_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/update_test_1.info b/drupal7/modules/simpletest/tests/update_test_1.info
index 01763a35..1dc0a674 100644
--- a/drupal7/modules/simpletest/tests/update_test_1.info
+++ b/drupal7/modules/simpletest/tests/update_test_1.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/update_test_2.info b/drupal7/modules/simpletest/tests/update_test_2.info
index 01763a35..1dc0a674 100644
--- a/drupal7/modules/simpletest/tests/update_test_2.info
+++ b/drupal7/modules/simpletest/tests/update_test_2.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/update_test_3.info b/drupal7/modules/simpletest/tests/update_test_3.info
index 01763a35..1dc0a674 100644
--- a/drupal7/modules/simpletest/tests/update_test_3.info
+++ b/drupal7/modules/simpletest/tests/update_test_3.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/url_alter_test.info b/drupal7/modules/simpletest/tests/url_alter_test.info
index af00b0f5..a7d648b1 100644
--- a/drupal7/modules/simpletest/tests/url_alter_test.info
+++ b/drupal7/modules/simpletest/tests/url_alter_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/simpletest/tests/xmlrpc_test.info b/drupal7/modules/simpletest/tests/xmlrpc_test.info
index 11139833..ae9e5daf 100644
--- a/drupal7/modules/simpletest/tests/xmlrpc_test.info
+++ b/drupal7/modules/simpletest/tests/xmlrpc_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/statistics/statistics.info b/drupal7/modules/statistics/statistics.info
index 6c818c3e..6787d345 100644
--- a/drupal7/modules/statistics/statistics.info
+++ b/drupal7/modules/statistics/statistics.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = statistics.test
 configure = admin/config/system/statistics
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/statistics/statistics.test b/drupal7/modules/statistics/statistics.test
index 0498bb76..7e038d61 100644
--- a/drupal7/modules/statistics/statistics.test
+++ b/drupal7/modules/statistics/statistics.test
@@ -414,7 +414,7 @@ class StatisticsAdminTestCase extends DrupalWebTestCase {
     $timestamp = time();
     $this->drupalPost(NULL, NULL, t('Cancel account'));
     // Confirm account cancellation request.
-    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid));
     $this->assertFalse(user_load($account->uid, TRUE), 'User is not found in the database.');
 
     $this->drupalGet('admin/reports/visitors');
diff --git a/drupal7/modules/syslog/syslog.info b/drupal7/modules/syslog/syslog.info
index b12b1270..c6cbb862 100644
--- a/drupal7/modules/syslog/syslog.info
+++ b/drupal7/modules/syslog/syslog.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = syslog.test
 configure = admin/config/development/logging
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/system/system.info b/drupal7/modules/system/system.info
index d8ee86e9..de967f89 100644
--- a/drupal7/modules/system/system.info
+++ b/drupal7/modules/system/system.info
@@ -12,8 +12,8 @@ files[] = system.test
 required = TRUE
 configure = admin/config/system
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/system/system.test b/drupal7/modules/system/system.test
index aefbfbc4..dcc86e53 100644
--- a/drupal7/modules/system/system.test
+++ b/drupal7/modules/system/system.test
@@ -2825,3 +2825,46 @@ class SystemValidTokenTest extends DrupalUnitTestCase {
     return TRUE;
   }
 }
+
+/**
+ * Tests confirm form destinations.
+ */
+class ConfirmFormTest extends DrupalWebTestCase {
+  protected $admin_user;
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Confirm form',
+      'description' => 'Tests that the confirm form does not use external destinations.',
+      'group' => 'System',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    $this->admin_user = $this->drupalCreateUser(array('administer users'));
+    $this->drupalLogin($this->admin_user);
+  }
+
+  /**
+   * Tests that the confirm form does not use external destinations.
+   */
+  function testConfirmForm() {
+    $this->drupalGet('user/1/cancel');
+    $this->assertCancelLinkUrl(url('user/1'));
+    $this->drupalGet('user/1/cancel', array('query' => array('destination' => 'node')));
+    $this->assertCancelLinkUrl(url('node'));
+    $this->drupalGet('user/1/cancel', array('query' => array('destination' => 'http://example.com')));
+    $this->assertCancelLinkUrl(url('user/1'));
+  }
+
+  /**
+   * Asserts that a cancel link is present pointing to the provided URL.
+   */
+  function assertCancelLinkUrl($url, $message = '', $group = 'Other') {
+    $links = $this->xpath('//a[normalize-space(text())=:label and @href=:url]', array(':label' => t('Cancel'), ':url' => $url));
+    $message = ($message ? $message : format_string('Cancel link with url %url found.', array('%url' => $url)));
+    return $this->assertTrue(isset($links[0]), $message, $group);
+  }
+}
diff --git a/drupal7/modules/system/tests/cron_queue_test.info b/drupal7/modules/system/tests/cron_queue_test.info
index 3e26e251..096ecbeb 100644
--- a/drupal7/modules/system/tests/cron_queue_test.info
+++ b/drupal7/modules/system/tests/cron_queue_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/taxonomy/taxonomy.info b/drupal7/modules/taxonomy/taxonomy.info
index e2d5727a..04d3cd6b 100644
--- a/drupal7/modules/taxonomy/taxonomy.info
+++ b/drupal7/modules/taxonomy/taxonomy.info
@@ -8,8 +8,8 @@ files[] = taxonomy.module
 files[] = taxonomy.test
 configure = admin/structure/taxonomy
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/toolbar/toolbar.info b/drupal7/modules/toolbar/toolbar.info
index a35b6ba7..63c5d81f 100644
--- a/drupal7/modules/toolbar/toolbar.info
+++ b/drupal7/modules/toolbar/toolbar.info
@@ -4,8 +4,8 @@ core = 7.x
 package = Core
 version = VERSION
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/tracker/tracker.info b/drupal7/modules/tracker/tracker.info
index d9994778..d85d6523 100644
--- a/drupal7/modules/tracker/tracker.info
+++ b/drupal7/modules/tracker/tracker.info
@@ -6,8 +6,8 @@ version = VERSION
 core = 7.x
 files[] = tracker.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/translation/tests/translation_test.info b/drupal7/modules/translation/tests/translation_test.info
index aecb9841..9e302ccb 100644
--- a/drupal7/modules/translation/tests/translation_test.info
+++ b/drupal7/modules/translation/tests/translation_test.info
@@ -5,8 +5,8 @@ package = Testing
 version = VERSION
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/translation/translation.info b/drupal7/modules/translation/translation.info
index 1ff8a134..d8ff9071 100644
--- a/drupal7/modules/translation/translation.info
+++ b/drupal7/modules/translation/translation.info
@@ -6,8 +6,8 @@ version = VERSION
 core = 7.x
 files[] = translation.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/trigger/tests/trigger_test.info b/drupal7/modules/trigger/tests/trigger_test.info
index f725f905..d0f26885 100644
--- a/drupal7/modules/trigger/tests/trigger_test.info
+++ b/drupal7/modules/trigger/tests/trigger_test.info
@@ -4,8 +4,8 @@ package = Testing
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/trigger/trigger.info b/drupal7/modules/trigger/trigger.info
index 30fc8bba..37f676e8 100644
--- a/drupal7/modules/trigger/trigger.info
+++ b/drupal7/modules/trigger/trigger.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = trigger.test
 configure = admin/structure/trigger
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/tests/aaa_update_test.info b/drupal7/modules/update/tests/aaa_update_test.info
index 935852d5..d728f667 100644
--- a/drupal7/modules/update/tests/aaa_update_test.info
+++ b/drupal7/modules/update/tests/aaa_update_test.info
@@ -4,8 +4,8 @@ package = Testing
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/tests/bbb_update_test.info b/drupal7/modules/update/tests/bbb_update_test.info
index 83830dc1..2f20d60e 100644
--- a/drupal7/modules/update/tests/bbb_update_test.info
+++ b/drupal7/modules/update/tests/bbb_update_test.info
@@ -4,8 +4,8 @@ package = Testing
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/tests/ccc_update_test.info b/drupal7/modules/update/tests/ccc_update_test.info
index 54499be4..dd3b1422 100644
--- a/drupal7/modules/update/tests/ccc_update_test.info
+++ b/drupal7/modules/update/tests/ccc_update_test.info
@@ -4,8 +4,8 @@ package = Testing
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info b/drupal7/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info
index 904c0b1e..1e7a2295 100644
--- a/drupal7/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info
+++ b/drupal7/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info
@@ -3,8 +3,8 @@ description = Test theme which acts as a base theme for other test subthemes.
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info b/drupal7/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info
index a08108a5..0d5720c6 100644
--- a/drupal7/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info
+++ b/drupal7/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info
@@ -4,8 +4,8 @@ core = 7.x
 base theme = update_test_basetheme
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/tests/update_test.info b/drupal7/modules/update/tests/update_test.info
index 0aa8d80d..57297e47 100644
--- a/drupal7/modules/update/tests/update_test.info
+++ b/drupal7/modules/update/tests/update_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/update/update.info b/drupal7/modules/update/update.info
index dbdd67dc..a4add6aa 100644
--- a/drupal7/modules/update/update.info
+++ b/drupal7/modules/update/update.info
@@ -6,8 +6,8 @@ core = 7.x
 files[] = update.test
 configure = admin/reports/updates/settings
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/user/tests/user_form_test.info b/drupal7/modules/user/tests/user_form_test.info
index 5a30a0b5..5bd344a5 100644
--- a/drupal7/modules/user/tests/user_form_test.info
+++ b/drupal7/modules/user/tests/user_form_test.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/user/user.info b/drupal7/modules/user/user.info
index f3cf393b..68cf2495 100644
--- a/drupal7/modules/user/user.info
+++ b/drupal7/modules/user/user.info
@@ -9,8 +9,8 @@ required = TRUE
 configure = admin/config/people
 stylesheets[all][] = user.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/modules/user/user.module b/drupal7/modules/user/user.module
index 60f32a15..bdfd36fa 100644
--- a/drupal7/modules/user/user.module
+++ b/drupal7/modules/user/user.module
@@ -2335,7 +2335,7 @@ function user_external_login_register($name, $module) {
  */
 function user_pass_reset_url($account) {
   $timestamp = REQUEST_TIME;
-  return url("user/reset/$account->uid/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login), array('absolute' => TRUE));
+  return url("user/reset/$account->uid/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid), array('absolute' => TRUE));
 }
 
 /**
@@ -2357,7 +2357,7 @@ function user_pass_reset_url($account) {
  */
 function user_cancel_url($account) {
   $timestamp = REQUEST_TIME;
-  return url("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login), array('absolute' => TRUE));
+  return url("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid), array('absolute' => TRUE));
 }
 
 /**
@@ -2377,12 +2377,33 @@ function user_cancel_url($account) {
  *   A UNIX timestamp, typically REQUEST_TIME.
  * @param int $login
  *   The UNIX timestamp of the user's last login.
+ * @param int $uid
+ *   The user ID of the user account.
  *
  * @return
  *   A string that is safe for use in URLs and SQL statements.
  */
-function user_pass_rehash($password, $timestamp, $login) {
-  return drupal_hmac_base64($timestamp . $login, drupal_get_hash_salt() . $password);
+function user_pass_rehash($password, $timestamp, $login, $uid) {
+  // Backwards compatibility: Try to determine a $uid if one was not passed.
+  // (Since $uid is a required parameter to this function, a PHP warning will
+  // be generated if it's not provided, which is an indication that the calling
+  // code should be updated. But the code below will try to generate a correct
+  // hash in the meantime.)
+  if (!isset($uid)) {
+    $uids = db_query_range('SELECT uid FROM {users} WHERE pass = :password AND login = :login AND uid > 0', 0, 2, array(':password' => $password, ':login' => $login))->fetchCol();
+    // If exactly one user account matches the provided password and login
+    // timestamp, proceed with that $uid.
+    if (count($uids) == 1) {
+      $uid = reset($uids);
+    }
+    // Otherwise there is no safe hash to return, so return a random string
+    // that will never be treated as a valid token.
+    else {
+      return drupal_random_key();
+    }
+  }
+
+  return drupal_hmac_base64($timestamp . $login . $uid, drupal_get_hash_salt() . $password);
 }
 
 /**
diff --git a/drupal7/modules/user/user.pages.inc b/drupal7/modules/user/user.pages.inc
index 8ec2348d..6b7d38e2 100644
--- a/drupal7/modules/user/user.pages.inc
+++ b/drupal7/modules/user/user.pages.inc
@@ -126,7 +126,7 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a
         drupal_set_message(t('You have tried to use a one-time login link that has expired. Please request a new one using the form below.'));
         drupal_goto('user/password');
       }
-      elseif ($account->uid && $timestamp >= $account->login && $timestamp <= $current && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login)) {
+      elseif ($account->uid && $timestamp >= $account->login && $timestamp <= $current && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)) {
         // First stage is a confirmation form, then login
         if ($action == 'login') {
           // Set the new user.
@@ -523,7 +523,7 @@ function user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') {
   // Basic validation of arguments.
   if (isset($account->data['user_cancel_method']) && !empty($timestamp) && !empty($hashed_pass)) {
     // Validate expiration and hashed password/login.
-    if ($timestamp <= $current && $current - $timestamp < $timeout && $account->uid && $timestamp >= $account->login && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login)) {
+    if ($timestamp <= $current && $current - $timestamp < $timeout && $account->uid && $timestamp >= $account->login && $hashed_pass == user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid)) {
       $edit = array(
         'user_cancel_notify' => isset($account->data['user_cancel_notify']) ? $account->data['user_cancel_notify'] : variable_get('user_mail_status_canceled_notify', FALSE),
       );
diff --git a/drupal7/modules/user/user.test b/drupal7/modules/user/user.test
index 03f0bbcd..07be4c2c 100644
--- a/drupal7/modules/user/user.test
+++ b/drupal7/modules/user/user.test
@@ -498,7 +498,7 @@ class UserPasswordResetTestCase extends DrupalWebTestCase {
     // To attempt an expired password reset, create a password reset link as if
     // its request time was 60 seconds older than the allowed limit of timeout.
     $bogus_timestamp = REQUEST_TIME - variable_get('user_password_reset_timeout', 86400) - 60;
-    $this->drupalGet("user/reset/$account->uid/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login));
+    $this->drupalGet("user/reset/$account->uid/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid));
     $this->assertText(t('You have tried to use a one-time login link that has expired. Please request a new one using the form below.'), 'Expired password reset request rejected.');
   }
 
@@ -519,6 +519,74 @@ class UserPasswordResetTestCase extends DrupalWebTestCase {
     $this->assertFieldByName('name', $edit['name'], 'User name found.');
   }
 
+  /**
+   * Make sure that users cannot forge password reset URLs of other users.
+   */
+  function testResetImpersonation() {
+    // Make sure user 1 has a valid password, so it does not interfere with the
+    // test user accounts that are created below.
+    $account = user_load(1);
+    user_save($account, array('pass' => user_password()));
+
+    // Create two identical user accounts except for the user name. They must
+    // have the same empty password, so we can't use $this->drupalCreateUser().
+    $edit = array();
+    $edit['name'] = $this->randomName();
+    $edit['mail'] = $edit['name'] . '@example.com';
+    $edit['status'] = 1;
+
+    $user1 = user_save(drupal_anonymous_user(), $edit);
+
+    $edit['name'] = $this->randomName();
+    $user2 = user_save(drupal_anonymous_user(), $edit);
+
+    // The password reset URL must not be valid for the second user when only
+    // the user ID is changed in the URL.
+    $reset_url = user_pass_reset_url($user1);
+    $attack_reset_url = str_replace("user/reset/$user1->uid", "user/reset/$user2->uid", $reset_url);
+    $this->drupalGet($attack_reset_url);
+    $this->assertNoText($user2->name, 'The invalid password reset page does not show the user name.');
+    $this->assertUrl('user/password', array(), 'The user is redirected to the password reset request page.');
+    $this->assertText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.');
+
+    // When legacy code calls user_pass_rehash() without providing the $uid
+    // parameter, neither password reset URL should be valid since it is
+    // impossible for the system to determine which user account the token was
+    // intended for.
+    $timestamp = REQUEST_TIME;
+    // Pass an explicit NULL for the $uid parameter of user_pass_rehash()
+    // rather than not passing it at all, to avoid triggering PHP warnings in
+    // the test.
+    $reset_url_token = user_pass_rehash($user1->pass, $timestamp, $user1->login, NULL);
+    $reset_url = url("user/reset/$user1->uid/$timestamp/$reset_url_token", array('absolute' => TRUE));
+    $this->drupalGet($reset_url);
+    $this->assertNoText($user1->name, 'The invalid password reset page does not show the user name.');
+    $this->assertUrl('user/password', array(), 'The user is redirected to the password reset request page.');
+    $this->assertText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.');
+    $attack_reset_url = str_replace("user/reset/$user1->uid", "user/reset/$user2->uid", $reset_url);
+    $this->drupalGet($attack_reset_url);
+    $this->assertNoText($user2->name, 'The invalid password reset page does not show the user name.');
+    $this->assertUrl('user/password', array(), 'The user is redirected to the password reset request page.');
+    $this->assertText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.');
+
+    // To verify that user_pass_rehash() never returns a valid result in the
+    // above situation (even if legacy code also called it to attempt to
+    // validate the token, rather than just to generate the URL), check that a
+    // second call with the same parameters produces a different result.
+    $new_reset_url_token = user_pass_rehash($user1->pass, $timestamp, $user1->login, NULL);
+    $this->assertNotEqual($reset_url_token, $new_reset_url_token);
+
+    // However, when the duplicate account is removed, the password reset URL
+    // should be valid.
+    user_delete($user2->uid);
+    $reset_url_token = user_pass_rehash($user1->pass, $timestamp, $user1->login, NULL);
+    $reset_url = url("user/reset/$user1->uid/$timestamp/$reset_url_token", array('absolute' => TRUE));
+    $this->drupalGet($reset_url);
+    $this->assertText($user1->name, 'The valid password reset page shows the user name.');
+    $this->assertUrl($reset_url, array(), 'The user remains on the password reset login page.');
+    $this->assertNoText('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.');
+  }
+
 }
 
 /**
@@ -558,7 +626,7 @@ class UserCancelTestCase extends DrupalWebTestCase {
 
     // Attempt bogus account cancellation request confirmation.
     $timestamp = $account->login;
-    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid));
     $this->assertResponse(403, 'Bogus cancelling request rejected.');
     $account = user_load($account->uid);
     $this->assertTrue($account->status == 1, 'User account was not canceled.');
@@ -631,14 +699,14 @@ class UserCancelTestCase extends DrupalWebTestCase {
 
     // Attempt bogus account cancellation request confirmation.
     $bogus_timestamp = $timestamp + 60;
-    $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid));
     $this->assertText(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.'), 'Bogus cancelling request rejected.');
     $account = user_load($account->uid);
     $this->assertTrue($account->status == 1, 'User account was not canceled.');
 
     // Attempt expired account cancellation request confirmation.
     $bogus_timestamp = $timestamp - 86400 - 60;
-    $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$bogus_timestamp/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid));
     $this->assertText(t('You have tried to use an account cancellation link that has expired. Please request a new one using the form below.'), 'Expired cancel account request rejected.');
     $accounts = user_load_multiple(array($account->uid), array('status' => 1));
     $this->assertTrue(reset($accounts), 'User account was not canceled.');
@@ -675,7 +743,7 @@ class UserCancelTestCase extends DrupalWebTestCase {
     $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
-    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid));
     $account = user_load($account->uid, TRUE);
     $this->assertTrue($account->status == 0, 'User has been blocked.');
 
@@ -713,7 +781,7 @@ class UserCancelTestCase extends DrupalWebTestCase {
     $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
-    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid));
     $account = user_load($account->uid, TRUE);
     $this->assertTrue($account->status == 0, 'User has been blocked.');
 
@@ -763,7 +831,7 @@ class UserCancelTestCase extends DrupalWebTestCase {
     $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
-    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid));
     $this->assertFalse(user_load($account->uid, TRUE), 'User is not found in the database.');
 
     // Confirm that user's content has been attributed to anonymous user.
@@ -827,7 +895,7 @@ class UserCancelTestCase extends DrupalWebTestCase {
     $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
-    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login));
+    $this->drupalGet("user/$account->uid/cancel/confirm/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login, $account->uid));
     $this->assertFalse(user_load($account->uid, TRUE), 'User is not found in the database.');
 
     // Confirm that user's content has been deleted.
diff --git a/drupal7/profiles/minimal/minimal.info b/drupal7/profiles/minimal/minimal.info
index 6d6ce1a5..423a5804 100644
--- a/drupal7/profiles/minimal/minimal.info
+++ b/drupal7/profiles/minimal/minimal.info
@@ -5,8 +5,8 @@ core = 7.x
 dependencies[] = block
 dependencies[] = dblog
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/profiles/standard/standard.info b/drupal7/profiles/standard/standard.info
index 81eba8c4..a6427e00 100644
--- a/drupal7/profiles/standard/standard.info
+++ b/drupal7/profiles/standard/standard.info
@@ -24,8 +24,8 @@ dependencies[] = field_ui
 dependencies[] = file
 dependencies[] = rdf
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/profiles/standard/translations/fr.po b/drupal7/profiles/standard/translations/fr.po
index 7a5ac312..be199755 100644
--- a/drupal7/profiles/standard/translations/fr.po
+++ b/drupal7/profiles/standard/translations/fr.po
@@ -1,10 +1,10 @@
-# French translation of Drupal core (7.28)
-# Copyright (c) 2014 by the French translation team
+# French translation of Drupal core (7.35)
+# Copyright (c) 2015 by the French translation team
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Drupal core (7.28)\n"
-"POT-Creation-Date: 2014-07-12 22:40+0000\n"
+"Project-Id-Version: Drupal core (7.35)\n"
+"POT-Creation-Date: 2015-03-18 20:58+0000\n"
 "PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
 "Language-Team: French\n"
 "MIME-Version: 1.0\n"
@@ -3995,7 +3995,7 @@ msgstr ""
 msgid "Select an installation profile"
 msgstr "Choisissez un profil d'installation"
 msgid "Choose language"
-msgstr "Choix de la langue d'installation"
+msgstr "Choisir une langue"
 msgid "Learn how to install Drupal in other languages"
 msgstr "Comment installer Drupal dans d'autres langues ?"
 msgid "(built-in)"
@@ -4024,13 +4024,13 @@ msgstr "Installation de @drupal"
 msgid "The installation has encountered an error."
 msgstr "Une erreur s'est produite durant l'installation."
 msgid "Configure site"
-msgstr "Configuration du site"
+msgstr "Configurer le site"
 msgid "@drupal installation complete"
 msgstr "Installation de @drupal terminée"
 msgid "Installed %module module."
 msgstr "Le module %module a été installé."
 msgid "Choose profile"
-msgstr "Choix du profil"
+msgstr "Choisir un profil"
 msgid "Verify requirements"
 msgstr "Vérification des pré-requis"
 msgid "Set up database"
@@ -4038,7 +4038,7 @@ msgstr "Installation de la base de données"
 msgid "Set up translations"
 msgstr "Installation des traductions"
 msgid "Install site"
-msgstr "Installation du site"
+msgstr "Installer le site"
 msgid "Finish translations"
 msgstr "Finalisation des traductions"
 msgid "Site e-mail address"
@@ -7113,7 +7113,7 @@ msgstr ""
 msgid "Site maintenance account"
 msgstr "Compte de maintenance du site"
 msgid "Select the default country for the site."
-msgstr "Choisissez un pays par défaut pour votre site."
+msgstr "Choisir le pays par défaut du site."
 msgid "Receive e-mail notifications"
 msgstr "Recevoir les courriels de notification"
 msgid ""
@@ -9994,40 +9994,40 @@ msgstr ""
 "défaut."
 msgctxt "Long month name"
 msgid "January"
-msgstr "Janvier"
+msgstr "janvier"
 msgctxt "Long month name"
 msgid "February"
-msgstr "Février"
+msgstr "février"
 msgctxt "Long month name"
 msgid "March"
-msgstr "Mars"
+msgstr "mars"
 msgctxt "Long month name"
 msgid "April"
-msgstr "Avril"
+msgstr "avril"
 msgctxt "Long month name"
 msgid "May"
-msgstr "Mai"
+msgstr "mai"
 msgctxt "Long month name"
 msgid "June"
-msgstr "Juin"
+msgstr "juin"
 msgctxt "Long month name"
 msgid "July"
-msgstr "Juillet"
+msgstr "juillet"
 msgctxt "Long month name"
 msgid "August"
-msgstr "Août"
+msgstr "août"
 msgctxt "Long month name"
 msgid "September"
-msgstr "Septembre"
+msgstr "septembre"
 msgctxt "Long month name"
 msgid "October"
-msgstr "Octobre"
+msgstr "octobre"
 msgctxt "Long month name"
 msgid "November"
-msgstr "Novembre"
+msgstr "novembre"
 msgctxt "Long month name"
 msgid "December"
-msgstr "Décembre"
+msgstr "décembre"
 msgid "add link"
 msgstr "ajouter un lien"
 msgid "There are no menu links yet. <a href=\"@link\">Add link</a>."
@@ -10477,8 +10477,6 @@ msgstr ""
 "versions plus anciennes."
 msgid "Full content"
 msgstr "Contenu complet"
-msgid "Search result"
-msgstr "Résultat de la recherche"
 msgid ""
 "The content on this page has either been modified by another user, or "
 "you have already submitted modifications using this form. As a result, "
@@ -13950,68 +13948,6 @@ msgstr ""
 "images des utilisateurs."
 msgid "%module module installed."
 msgstr "Module %module installé."
-msgid "Table %name already exists."
-msgstr "La table %name existe déjà."
-msgid "Cannot rename %table to %table_new: table %table doesn't exist."
-msgstr ""
-"Impossible de renommer la table %table en %table_new : la table %table "
-"n'existe pas."
-msgid "Cannot rename %table to %table_new: table %table_new already exists."
-msgstr ""
-"Impossible de renommer la table %table en %table_new : la table "
-"%table_new existe déjà."
-msgid "Cannot add field %table.%field: table doesn't exist."
-msgstr "Impossible d'ajouter le champ %table.%field : la table n'existe pas."
-msgid "Cannot add field %table.%field: field already exists."
-msgstr "Impossible d'ajouter le champ %table.%field : le champ existe déjà."
-msgid "Cannot set default value of field %table.%field: field doesn't exist."
-msgstr ""
-"Impossible de définir la valeur par défaut du champ %table.%field : "
-"le champ n'existe pas."
-msgid ""
-"Cannot remove default value of field %table.%field: field doesn't "
-"exist."
-msgstr ""
-"Impossible de supprimer la valeur par défaut du champ %table.%field : "
-"le champ n'existe pas."
-msgid "Cannot add primary key to table %table: table doesn't exist."
-msgstr ""
-"Impossible d'ajouter la clé primaire à la table %table : la table "
-"n'existe pas."
-msgid "Cannot add primary key to table %table: primary key already exists."
-msgstr ""
-"Impossible d'ajouter la clé primaire à la table %table : une clé "
-"primaire existe déjà."
-msgid "Cannot add unique key %name to table %table: table doesn't exist."
-msgstr ""
-"Impossible d'ajouter la clé unique %name à la table %table : la "
-"table n'existe pas."
-msgid ""
-"Cannot add unique key %name to table %table: unique key already "
-"exists."
-msgstr ""
-"Impossible d'ajouter la clé unique %name à la table %table : une "
-"clé unique existe déjà."
-msgid "Cannot add index %name to table %table: table doesn't exist."
-msgstr ""
-"Impossible d'ajouter l'index %name à la table %table : la table "
-"n'existe pas."
-msgid "Cannot add index %name to table %table: index already exists."
-msgstr ""
-"Impossible d'ajouter l'index %name à la table %table : l'index existe "
-"déjà."
-msgid ""
-"Cannot change the definition of field %table.%name: field doesn't "
-"exist."
-msgstr ""
-"Impossible de changer la définition du champ %table.%name : le champ "
-"n'existe pas."
-msgid ""
-"Cannot rename field %table.%name to %name_new: target field already "
-"exists."
-msgstr ""
-"Impossible de renommer le champ %table.%name en %name_new : le champ "
-"cible existe déjà."
 msgid "Use this page to create a new custom block."
 msgstr "Utiliser cette page pour créer un nouveau bloc personnalisé."
 msgid "Number of recent blog posts to display"
@@ -16796,6 +16732,68 @@ msgid "Subscribe to !feed-title"
 msgstr "S'abonner à !feed-title"
 msgid "Theme hook %hook not found."
 msgstr "Hook de thème %hook non trouvé"
+msgid "Table @name already exists."
+msgstr "La table @name existe déjà."
+msgid "Cannot rename @table to @table_new: table @table doesn't exist."
+msgstr ""
+"Impossible de renommer @table en @table_new : la table @table n'existe "
+"pas."
+msgid "Cannot rename @table to @table_new: table @table_new already exists."
+msgstr ""
+"Impossible de renommer @table en @table_new : la table @table_new "
+"existe déjà."
+msgid "Cannot add field @table.@field: table doesn't exist."
+msgstr "Impossible d'ajouter le champ @table.@field : la table n'existe pas."
+msgid "Cannot add field @table.@field: field already exists."
+msgstr "Impossible d'ajouter le champ @table.@field : le champ existe déjà."
+msgid "Cannot set default value of field @table.@field: field doesn't exist."
+msgstr ""
+"Impossible de définir une valeur par défaut pour le champ "
+"@table.@field : le champ n'existe pas."
+msgid ""
+"Cannot remove default value of field @table.@field: field doesn't "
+"exist."
+msgstr ""
+"Impossible de supprimer la valeur par défaut du champ @table.@field : "
+"le champ n'existe pas."
+msgid "Cannot add primary key to table @table: table doesn't exist."
+msgstr ""
+"Impossible d'ajouter une clef primaire à la table @table : la table "
+"n'existe pas."
+msgid "Cannot add primary key to table @table: primary key already exists."
+msgstr ""
+"Impossible d'ajouter une clef primaire à la table @table : la clef "
+"primaire existe déjà."
+msgid "Cannot add unique key @name to table @table: table doesn't exist."
+msgstr ""
+"Impossible d'ajouter la clef unique @name à la table @table : la "
+"table n'existe pas."
+msgid ""
+"Cannot add unique key @name to table @table: unique key already "
+"exists."
+msgstr ""
+"Impossible d'ajouter la clef unique @name à la table @table : la clef "
+"unique existe déjà."
+msgid "Cannot add index @name to table @table: table doesn't exist."
+msgstr ""
+"Impossible d'ajouter l'index @name à la table @table : la table "
+"n'existe pas."
+msgid "Cannot add index @name to table @table: index already exists."
+msgstr ""
+"Impossible d'ajouter l'index @name à la table @table : l'index existe "
+"déjà."
+msgid ""
+"Cannot change the definition of field @table.@name: field doesn't "
+"exist."
+msgstr ""
+"Impossible de changer la définition du champ @table.@name : le champ "
+"n'existe pas."
+msgid ""
+"Cannot rename field @table.@name to @name_new: target field already "
+"exists."
+msgstr ""
+"Impossible de renommer le champ @table.@name en @name_new : le champ "
+"cible existe déjà."
 msgid "No book content available."
 msgstr "Aucun contenu de livre disponible."
 msgid "Field type(s) in use - see <a href=\"@fields-page\">Field list</a>"
@@ -16812,6 +16810,12 @@ msgid "Install another module"
 msgstr "Installer un autre module"
 msgid "South Sudan"
 msgstr "Soudan du Sud"
+msgid ""
+"Source image at %source_image_path not found while trying to generate "
+"derivative image at %derivative_path."
+msgstr ""
+"L'image source (%source_image_path) n'a pas été trouvée lors de la "
+"tentative de création d'un dérivé (%derivative_path)."
 msgid "Get an overview of <a href=\"@url\">all content</a>."
 msgstr "Avoir un aperçu de <a href=\"@url\">tous les contenus</a>."
 msgid "Get an overview of all content."
@@ -16866,3 +16870,7 @@ msgid ""
 msgstr ""
 "Une incohérence de l'identifiant du formulaire a été détectée "
 "lors de la tentative d'enregistrement dans le cache."
+msgid "Search result highlighting input"
+msgstr "Effectuer une recherche en mettant en évidence les données saisies"
+msgid "Link %label does not exist on @url_before"
+msgstr "Le lien %label n'existe pas dans @url_before"
diff --git a/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
index 0b1d3140..037685ff 100644
--- a/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
+++ b/drupal7/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info
@@ -6,8 +6,8 @@ core = 7.x
 hidden = TRUE
 files[] = drupal_system_listing_compatible_test.test
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
index 21c13265..4ffd7e5e 100644
--- a/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
+++ b/drupal7/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info
@@ -8,8 +8,8 @@ version = VERSION
 core = 6.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/profiles/testing/testing.info b/drupal7/profiles/testing/testing.info
index df8cdfe1..b05d5364 100644
--- a/drupal7/profiles/testing/testing.info
+++ b/drupal7/profiles/testing/testing.info
@@ -4,8 +4,8 @@ version = VERSION
 core = 7.x
 hidden = TRUE
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/themes/bartik/bartik.info b/drupal7/themes/bartik/bartik.info
index 60135d8a..f57dde1b 100644
--- a/drupal7/themes/bartik/bartik.info
+++ b/drupal7/themes/bartik/bartik.info
@@ -34,8 +34,8 @@ regions[footer] = Footer
 settings[shortcut_module_link] = 0
 
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/themes/garland/garland.info b/drupal7/themes/garland/garland.info
index 12b8e352..34c238bf 100644
--- a/drupal7/themes/garland/garland.info
+++ b/drupal7/themes/garland/garland.info
@@ -7,8 +7,8 @@ stylesheets[all][] = style.css
 stylesheets[print][] = print.css
 settings[garland_width] = fluid
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/themes/seven/seven.info b/drupal7/themes/seven/seven.info
index 91414555..e844220e 100644
--- a/drupal7/themes/seven/seven.info
+++ b/drupal7/themes/seven/seven.info
@@ -13,8 +13,8 @@ regions[page_bottom] = Page bottom
 regions[sidebar_first] = First sidebar
 regions_hidden[] = sidebar_first
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
diff --git a/drupal7/themes/stark/stark.info b/drupal7/themes/stark/stark.info
index 23c36119..c5b15af0 100644
--- a/drupal7/themes/stark/stark.info
+++ b/drupal7/themes/stark/stark.info
@@ -5,8 +5,8 @@ version = VERSION
 core = 7.x
 stylesheets[all][] = layout.css
 
-; Information added by Drupal.org packaging script on 2014-11-19
-version = "7.34"
+; Information added by Drupal.org packaging script on 2015-03-18
+version = "7.35"
 project = "drupal"
-datestamp = "1416429488"
+datestamp = "1426707463"
 
