Package: ilohamail
Version: 0.8.14-0rc3sid6.1
Severity: important

I think this may have come about with the latest bump in PHP versions,
and I had patched it once, but it's reared its head again with an
update to IlohaMail.
This time I've captured a proper patch for IlohaMail to make it work,
though I'm not really a PHP coder.

IlohaMail stopped rendering some emails (likely multipart), and I'd see
these errors in apache's error.log:
PHP Warning:  strcasecmp() expects parameter 1 to be string, array
 given in /usr/share/IlohaMail/include/mime.inc on line 87
PHP Warning:  strcasecmp() expects parameter 1 to be string, array
 given in /usr/share/IlohaMail/include/mime.inc on line 121
PHP Warning:  strcasecmp() expects parameter 1 to be string, array
 given in /usr/share/IlohaMail/include/mime.inc on line 106

Here's my patch that seems to have gotten it working again.  It checks
that the input to strcasecmp will not be an array in the problem spots.

--- mime.inc.bak        2010-03-16 13:35:29.000000000 -0400
+++ mime.inc    2010-03-16 16:33:05.000000000 -0400
@@ -84,7 +84,9 @@
     $line = str_replace(")(", ") (", $line);
        
        $struct = iml_ParseBSString($line);
-       if ((strcasecmp($struct[0], "message")==0) && (strcasecmp($struct[1], 
"rfc822")==0)){
+       if (!is_array($struct[0]) && (strcasecmp($struct[0], "message")==0) 
+            && !is_array($struct[1]) 
+            && (strcasecmp($struct[1], "rfc822")==0)){
                $struct = array($struct);
        }
     return $struct;
@@ -97,13 +99,15 @@
                $pos = strpos($part, ".");
                $rest = substr($original_part, $pos+1);
                $part = substr($original_part, 0, $pos);
-               if ((strcasecmp($a[0], "message")==0) && (strcasecmp($a[1], 
"rfc822")==0)){
+               if (!is_array($a[0]) && (strcasecmp($a[0], "message")==0) 
+                && !is_array($a[1]) && (strcasecmp($a[1], "rfc822")==0)){
                        $a = $a[8];
                }
                //echo "m - part: $original_part current: $part rest: $rest 
array: ".implode(" ", $a)."<br>\n";
                return iml_GetPartArray($a[$part-1], $rest);
-       }else if ($part>0){
-               if ((strcasecmp($a[0], "message")==0) && (strcasecmp($a[1], 
"rfc822")==0)){
+       } else if ($part>0) {
+               if (!is_array($a[0]) && (strcasecmp($a[0], "message")==0)
+                && !is_array($a[1]) && (strcasecmp($a[1], "rfc822")==0)){
                        $a = $a[8];
                }
                //echo "s - part: $part rest: $rest array: ".implode(" ", 
$a)."<br>\n";
@@ -118,7 +122,10 @@
        if (is_array($a)){
                $parent=iml_GetPartArray($a, $part);
                
-               if ((strcasecmp($parent[0], "message")==0) && 
(strcasecmp($parent[1], "rfc822")==0)){
+               if (!is_array($parent[0]) 
+                && (strcasecmp($parent[0], "message")==0) 
+                && !is_array($parent[1])
+                && (strcasecmp($parent[1], "rfc822")==0)){
                        $parent = $parent[8];
                }
 
@@ -258,7 +265,9 @@
                                if ((is_array($part_a[$id])) && 
(is_array($part_a[$id][1]))){
                     $array = $part_a[$id][1];
                     while ( list($key, $val) = each($array)){
-                        if ((strcasecmp($val, "NAME")==0)||(strcasecmp($val, 
"FILENAME")==0)) 
+                        if (!is_array($val)
+                                && ((strcasecmp($val, "NAME")==0)
+                                || (strcasecmp($val, "FILENAME")==0)))
                             $name=$array[$key+1];
                     }
                 }

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18.8-xenU (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages ilohamail depends on:
ii  apache2-mpm-prefork [httpd]   2.2.15-2   Apache HTTP Server - traditional n
ii  debconf [debconf-2.0]         1.5.28     Debian configuration management sy
ii  libapache2-mod-php5           5.3.2-1    server-side, HTML-embedded scripti
ii  php5                          5.3.2-1    server-side, HTML-embedded scripti
ii  sendmail-bin [mail-transport- 8.14.3-9.1 powerful, efficient, and scalable 
ii  wwwconfig-common              0.2.1      Debian web auto configuration

Versions of packages ilohamail recommends:
ii  aspell                        0.60.6-4   GNU Aspell spell-checker
ii  gnupg                         1.4.10-2   GNU privacy guard - a free PGP rep
ii  mysql-client                  5.1.44-3   MySQL database client (metapackage
ii  mysql-client-5.1 [mysql-clien 5.1.44-3   MySQL database client binaries
ii  php5-mysql                    5.3.2-1    MySQL module for php5

ilohamail suggests no packages.

-- debconf information:
* ilohamail/webserver_type: Apache2
* ilohamail/weblocation: /IlohaMail



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to