diff options
author | Dries Buytaert <dries@buytaert.net> | 2005-06-29 19:53:14 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2005-06-29 19:53:14 +0000 |
commit | 2c10ff4b5febd8f348febd4a23f3a4fef48f7240 (patch) | |
tree | f8940be8aabec6d563a088ff3737249f6caeeffb /modules/node.module | |
parent | 9648096e3271f774e7cf821a1827f61bba12385b (diff) | |
download | brdo-2c10ff4b5febd8f348febd4a23f3a4fef48f7240.tar.gz brdo-2c10ff4b5febd8f348febd4a23f3a4fef48f7240.tar.bz2 |
- Fixed problems with filter formats and problem with XML-RPC server.
Diffstat (limited to 'modules/node.module')
-rw-r--r-- | modules/node.module | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/modules/node.module b/modules/node.module index e454de575..63e1ca02a 100644 --- a/modules/node.module +++ b/modules/node.module @@ -498,6 +498,13 @@ function node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE) { if ($links) { $node->links = module_invoke_all('link', 'node', $node, !$page); } + // unset unused $node part so that a bad theme can not open a security hole + if ($teaser) { + unset($node->body); + } + else { + unset($node->teaser); + } return theme('node', $node, $teaser, $page); } @@ -508,10 +515,10 @@ function node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE) { function node_prepare($node, $teaser = FALSE) { $node->readmore = (strlen($node->teaser) < strlen($node->body)); if ($teaser == FALSE) { - $node->body = check_output($node->body, $node->format); + $node->body = check_output($node->body, $node->format, FALSE); } else { - $node->teaser = check_output($node->teaser, $node->format); + $node->teaser = check_output($node->teaser, $node->format, FALSE); } return $node; } @@ -567,7 +574,7 @@ function node_search($op = 'search', $keys = null) { 'user' => format_name($node), 'date' => $node->changed, 'extra' => $extra, - 'snippet' => search_excerpt($keys, check_output($node->body, $node->format))); + 'snippet' => search_excerpt($keys, check_output($node->body, $node->format, FALSE))); } return $results; } @@ -1470,7 +1477,9 @@ function node_preview($node) { // Display a preview of the node: // Previewing alters $node so it needs to be cloned. - $output = theme('node_preview', drupal_clone($node)); + if (!form_get_errors()) { + $output = theme('node_preview', drupal_clone($node)); + } $output .= node_form($node); |