diff options
author | Dries Buytaert <dries@buytaert.net> | 2006-01-08 12:17:57 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2006-01-08 12:17:57 +0000 |
commit | 70c097f2bec7a896692515e51d1ae583e79cf572 (patch) | |
tree | 66f93079a1db8a7abe56f632d8125eb179abf19b /includes/menu.inc | |
parent | c297f2e09cb39f3018e51481c78fe0fe31b4fea0 (diff) | |
download | brdo-70c097f2bec7a896692515e51d1ae583e79cf572.tar.gz brdo-70c097f2bec7a896692515e51d1ae583e79cf572.tar.bz2 |
- Modified patch #43082 by chx: return a 404 when a callback function does not exist.
Diffstat (limited to 'includes/menu.inc')
-rw-r--r-- | includes/menu.inc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/includes/menu.inc b/includes/menu.inc index e511ec6bd..b47328c43 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -337,10 +337,15 @@ function menu_execute_active_handler() { while ($path && !isset($menu['callbacks'][$path])) { $path = substr($path, 0, strrpos($path, '/')); } + if (!isset($menu['callbacks'][$path])) { return MENU_NOT_FOUND; } + if (!function_exists($menu['callbacks'][$path]['callback'])) { + return MENU_NOT_FOUND; + } + if (!_menu_item_is_accessible(menu_get_active_item())) { return MENU_ACCESS_DENIED; } @@ -352,7 +357,7 @@ function menu_execute_active_handler() { $arguments = array_merge($arguments, explode('/', $arg)); } - return function_exists($menu['callbacks'][$path]['callback']) ? call_user_func_array($menu['callbacks'][$path]['callback'], $arguments) : ''; + return call_user_func_array($menu['callbacks'][$path]['callback'], $arguments); } /** |