From b228f0183a7797a8ec45fb39560360f40fcc6b0c Mon Sep 17 00:00:00 2001
From: Steven Wittens <steven@10.no-reply.drupal.org>
Date: Sat, 16 Oct 2004 19:42:52 +0000
Subject: [PATCH] #11449: Adding a failsafe check for an improperly prefixed
 menu sequence. This is a temporary fix, awaiting a proper install system to
 end manual prefixing ;).

---
 includes/menu.inc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/includes/menu.inc b/includes/menu.inc
index 729a202b8523..da2f8a28aa3b 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -505,6 +505,12 @@ function menu_rebuild() {
     foreach ($menu['items'] as $mid => $item) {
       if ($mid < 0 && ($item['type'] & MENU_MODIFIABLE_BY_ADMIN)) {
         $new_mid = db_next_id('{menu}_mid');
+        // Check explicitly for mid 1. If the database was improperly prefixed,
+        // this would cause a nasty infinite loop.
+        // TODO: have automatic prefixing through an installer to prevent this.
+        if ($new_mid == 1) {
+          $new_mid = db_next_id('{menu}_mid');
+        }
         if (isset($new_items[$item['pid']])) {
           $new_pid = $new_items[$item['pid']]['mid'];
         }
-- 
GitLab