summaryrefslogtreecommitdiff
path: root/modules/search/search.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/search/search.module')
-rw-r--r--modules/search/search.module8
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/search/search.module b/modules/search/search.module
index 1fd065536..479010d97 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -1116,6 +1116,14 @@ function search_box(&$form_state, $form_id) {
* Process a block search form submission.
*/
function search_box_form_submit($form, &$form_state) {
+ // The search form relies on control of the redirect destination for its
+ // functionality, so we override any static destination set in the request,
+ // for example by drupal_access_denied() or drupal_not_found()
+ // (see http://drupal.org/node/292565).
+ if (isset($_REQUEST['destination'])) {
+ unset($_REQUEST['destination']);
+ }
+
$form_id = $form['form_id']['#value'];
$form_state['redirect'] = 'search/node/' . trim($form_state['values'][$form_id]);
}