From 7ee124b9ccb626cfa93dbcaf2b158b54b9305bec Mon Sep 17 00:00:00 2001 From: webchick Date: Sat, 28 Apr 2012 23:52:09 -0700 Subject: Issue #261148 follow-up by mikeytown2, chx: Fixed menu_masks() variable is empty (race condition). --- includes/menu.inc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'includes/menu.inc') diff --git a/includes/menu.inc b/includes/menu.inc index eec342f69..b25a374ac 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -321,7 +321,14 @@ function menu_get_ancestors($parts) { $ancestors = array(); $length = $number_parts - 1; $end = (1 << $number_parts) - 1; - $masks = variable_get('menu_masks', array()); + $masks = variable_get('menu_masks'); + // If the optimized menu_masks array is not available use brute force to get + // the correct $ancestors and $placeholders returned. Do not use this as the + // default value of the menu_masks variable to avoid building such a big + // array. + if (!$masks) { + $masks = range(511, 1); + } // Only examine patterns that actually exist as router items (the masks). foreach ($masks as $i) { if ($i > $end) { -- cgit v1.2.3