Fix for infinite loop when trying to decode multi-part mime attachments
[squirrelmail.git] / class / mime / Message.class.php
index 0cec7e2432f7979f06a24c9cae2bbb706a1ae1c5..4e7dc48e8be1ef0bb08f5c541b06bae81fea8f5a 100644 (file)
@@ -443,9 +443,9 @@ class Message {
 
             $hdr->date = getTimeStamp($d); /* argument 1: date */
             $hdr->subject = $arg_a[1];     /* argument 2: subject */
-            $hdr->from = $arg_a[2][0];     /* argument 3: from        */
-            $hdr->sender = $arg_a[3][0];   /* argument 4: sender      */
-            $hdr->replyto = $arg_a[4][0];  /* argument 5: reply-to    */
+            $hdr->from = is_array($arg_a[2]) ? $arg_a[2][0] : '';     /* argument 3: from        */
+            $hdr->sender = is_array($arg_a[3]) ? $arg_a[3][0] : '';   /* argument 4: sender      */
+            $hdr->replyto = is_array($arg_a[4]) ? $arg_a[4][0] : '';  /* argument 5: reply-to    */
             $hdr->to = $arg_a[5];          /* argument 6: to          */
             $hdr->cc = $arg_a[6];          /* argument 7: cc          */
             $hdr->bcc = $arg_a[7];         /* argument 8: bcc         */
@@ -486,6 +486,10 @@ class Message {
              $i = $iPos;
              break;
           }
+       $iPos++;
+       if ($iPos > strlen($read)) {
+          break;
+       }
        }
         return $s;
     }