summaryrefslogtreecommitdiff
path: root/includes/menu.inc
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2006-01-08 12:17:57 +0000
committerDries Buytaert <dries@buytaert.net>2006-01-08 12:17:57 +0000
commit70c097f2bec7a896692515e51d1ae583e79cf572 (patch)
tree66f93079a1db8a7abe56f632d8125eb179abf19b /includes/menu.inc
parentc297f2e09cb39f3018e51481c78fe0fe31b4fea0 (diff)
downloadbrdo-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.inc7
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);
}
/**