Added security patch
[squirrelmail.git] / functions / imap_mailbox.php
index 0ac9ca999ee9ee6231599cdf00084c774d2be815..b121978433b4d65180d0d1e4191034a79c6f3258 100755 (executable)
          // a parent.
          $boxesbyname[$mailbox] = $g;
          $parentfolder = readMailboxParent($mailbox, $dm);
-         if((eregi("^inbox".quotemeta($dm), $mailbox)) || 
-            (ereg("^".$folder_prefix, $mailbox)) ||
-            ( isset($boxesbyname[$parentfolder]) && (strlen($parentfolder) > 0) ) ) {
+         if((strtolower(substr($mailbox, 0, 5)) == "inbox") ||
+            (substr($mailbox, 0, strlen($folder_prefix)) == $folder_prefix) ||
+            (isset($boxesbyname[$parentfolder]) && (strlen($parentfolder) > 0) ) ) {
             $indent = $dm_count - (countCharInString($folder_prefix, $dm));
-            if ($indent)
+            if ($indent > 0)
                 $boxes[$g]["formatted"]  = str_repeat("  ", $indent);
             else
                 $boxes[$g]["formatted"] = '';
          if (substr($mailbox, -1) == $dm)
             $mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
          $boxes[$g]['unformatted'] = $mailbox;
-         $boxes[$g]['unformatted-disp'] = ereg_replace('^' . $folder_prefix, '', $mailbox);
+         //$boxes[$g]['unformatted-disp'] = ereg_replace('^' . $folder_prefix, '', $mailbox);
+         if (substr($mailbox,0,strlen($folder_prefix))==$folder_prefix) { 
+            $boxes[$g]['unformatted-disp'] = substr($mailbox, strlen($folder_prefix));
+         } else if (strtolower($mailbox) == "inbox") {
+            $boxes[$g]['unformatted-disp'] = $mailbox;
+         }
          $boxes[$g]['id'] = $g;
 
          if (isset($line[$g]))
-         ereg("\(([^)]*)\)",$line[$g],$regs);
+            ereg("\(([^)]*)\)",$line[$g],$regs);
          $flags = trim(strtolower(str_replace('\\', '',$regs[1])));
          if ($flags) {
             $boxes[$g]['flags'] = explode(' ', $flags);
          }
+        else
+            $boxes[$g]['flags'] = array();
       }
 
       return $boxes;
          if (isset($read[0]))
          $sorted_list_ary[$i] = $read[0];
          else
-         $sorget_list_ary[$i] = "";
+         $sorted_list_ary[$i] = "";
          if (isset($sorted_list_ary[$i]) && find_mailbox_name($sorted_list_ary[$i]) == "INBOX")
             $inbox_in_list = true;
       }
             $flags = str_replace('\\', '', $flags);
             $flags = trim(strtolower($flags));
             if ($flags) {
-               $boxes[$g]["flags"] = explode(" ", $flags);
+               $boxes[$g]['flags'] = explode(" ", $flags);
             }
+           else
+           {
+              $boxes[$g]['flags'] = array();
+           }
          }
          $g++;
       }