* Fix bug #3495: Endless recursion with some MySQL versions
authorMichael Stucki <michael.stucki@typo3.org>
Mon, 6 Nov 2006 09:42:26 +0000 (09:42 +0000)
committerMichael Stucki <michael.stucki@typo3.org>
Mon, 6 Nov 2006 09:42:26 +0000 (09:42 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/branches/TYPO3_4-0@1785 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_treeview.php

index f343118..20dc9ef 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-06  Michael Stucki  <michael@typo3.org>
+
+       * Fix bug #3495: Endless recursion with some MySQL versions
+
 2006-11-03  Michael Stucki  <michael@typo3.org>
 
        * Fixed bug #4411: Popup-menues appearing in topframe in Internet Explorer 7. Thanks to Mads Brunn for providing a fix.
index 98c6080..6acd2b3 100755 (executable)
@@ -756,7 +756,13 @@ class t3lib_treeView {
                        $a++;
                        $crazyRecursionLimiter--;
 
-                       $newID =$row['uid'];
+                       $newID = $row['uid'];
+
+                       if ($newID==0)  {
+                               t3lib_BEfunc::typo3PrintError ('Endless recursion detected', 'TYPO3 has detected an error in the database. Please fix it manually (e.g. using phpMyAdmin) and change the UID of '.$this->table.':0 to a new value.<br /><br />See <a href="http://bugs.typo3.org/view.php?id=3495" target="_blank">bugs.typo3.org/view.php?id=3495</a> to get more information about a possible cause.',0);
+                               exit;
+                       }
+
                        $this->tree[]=array();          // Reserve space.
                        end($this->tree);
                        $treeKey = key($this->tree);    // Get the key for this space
@@ -891,7 +897,7 @@ class t3lib_treeView {
         * For arrays: This will return key to the ->dataLookup array
         *
         * @param       integer         parent item id
-        * @param       string          Class for sub-elements. 
+        * @param       string          Class for sub-elements.
         * @return      mixed           data handle (Tables: An sql-resource, arrays: A parentId integer. -1 is returned if there were NO subLevel.)
         * @access private
         */
@@ -944,7 +950,7 @@ class t3lib_treeView {
         * @access private
         * @see getDataInit()
         */
-       function getDataNext(&$res,$subCSSclass=''){
+       function getDataNext(&$res,$subCSSclass='')     {
                if (is_array($this->data)) {
                        if ($res<0) {
                                $row=FALSE;