Package: imp4
Version: 4.0.3-1
Severity: important

Hello,

using IMP 4.0.2 and 4.0.3 (same symptoms).

If (and only if) I use the folder prefix during login ("INBOX", using Courier
IMAP server) then the sidebar with the folders is not shown in the browser. In
the apache logs, the apache process which provides this HTML frame is killed
with SIGSEGV. Using the PHP debugger "apd", I see an endless loop in the
functions

   imp_tree->_addlevel
      imp_tree->_makemailboxtreeelt
        imp_tree->_initsubscribed
          is_null
        imp_tree->_setsubscribed
          imp_tree->_setattribute
        imp_tree->ispolled
        imp_tree->getpolllist
          is_null
        imp_tree->_setpolled
          imp_tree->_setattribute
        imp_tree->isopen
          imp_tree->_getinitexpandedmode
            prefs->getvalue
              nls->getcharset
                intval
                nls->_cachedcharset
                is_null
              prefs->convertfromdriver
        imp_tree->_setopen
          imp_tree->_setattribute
        explode
        count
        string->convertcharset
          is_null
          string->lower (2x)
          is_array
          is_object
          is_string
          util->extensionexists
          mb_convert_encoding
      imp_tree->_insertelt
        strlen
      imp_tree->expand
        imp_tree->_convertname
          strcasecmp
        imp_tree->isdiscovered
        imp_tree->_childreninfo
          imp_tree->haschildren
          imp_tree->_getlist
            imp_tree->_getstream
            call_user_func
              imap_getmailboxes
            is_array
            imp_tree->_removeserverstring
              strpos
              substr
              imp_tree->_convertname
                strcasecmp
          imp_tree->_setchildren
            imp_tree->_setattribute (3x)
>        imp_tree->_addlevel                    ==== same again, recursively
          imp_tree->_makemailboxtreeelt
            imp_tree->_initsubscribed
              is_null
            imp_tree->_setsubscribed
              imp_tree->_setattribute
            imp_tree->ispolled
            imp_tree->getpolllist
              is_null
            imp_tree->_setpolled
              imp_tree->_setattribute
            imp_tree->isopen
              imp_tree->_getinitexpandedmode
                prefs->getvalue
                  nls->getcharset
                    intval

This whole function call tree from APD is 53 MB as a text file. I can bzip2 it
and send it if you want. :-)

The segfault happens in libc-client2002edebian, called from php4's imap.so,
which seems to provide the IMAP functions. (gdb output from apache core file)

#0  0x276a5b04 in __strtoul_internal () from /lib/libc.so.6
#1  0x27e0ec7a in mail_valid_net_parse_work () from 
/usr/lib/libc-client.so.2002edebian
#2  0x27e0ea50 in mail_valid_net_parse () from 
/usr/lib/libc-client.so.2002edebian
#3  0x27e0e9b5 in mail_valid_net () from /usr/lib/libc-client.so.2002edebian
#4  0x27e2f745 in imap_valid () from /usr/lib/libc-client.so.2002edebian
#5  0x27e30010 in imap_list_work () from /usr/lib/libc-client.so.2002edebian
#6  0x27e2fa5d in imap_list () from /usr/lib/libc-client.so.2002edebian
#7  0x27e0f56b in mail_list () from /usr/lib/libc-client.so.2002edebian
#8  0x27de2018 in zif_imap_list_full () from /usr/lib/php4/20020429/imap.so
#9  0x27abfc3b in call_user_function_ex () from /usr/lib/apache/1.3/libphp4.so
#10 0x27a2ed3b in zif_call_user_func () from /usr/lib/apache/1.3/libphp4.so
#11 0x27ad7f60 in execute () from /usr/lib/apache/1.3/libphp4.so

When I watch the IMAP communication, I see that if (and only if) I
specify "INBOX" as a folder prefix I see IMP repeatedly listing INBOX:

* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT 
THREAD=REFERENCES SORT Q
UOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 
Double Precision, Inc.  S
ee COPYING for distribution information..
* CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT 
THREAD=REFERENCES SORT QUOTA
 IDLE ACL ACL2=UNION.
* LIST (\Noselect) "." "".
* BYE Courier-IMAP server shutting down.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT 
THREAD=REFERENCES SORT Q
UOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 
Double Precision, Inc.  S
ee COPYING for distribution information..
* CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT 
THREAD=REFERENCES SORT QUOTA
 IDLE ACL ACL2=UNION.
* LIST (\Marked \HasChildren) "." "INBOX".
* LSUB (\HasNoChildren) "." "INBOX.RB-Spamverdacht".
* LSUB (\HasNoChildren) "." "INBOX.RB-Spam".
* LSUB (\HasNoChildren) "." "INBOX.RB-Ham".
* LSUB (\Marked \HasChildren) "." "INBOX".
(more folders listed here)
* LSUB (\HasNoChildren) "." "INBOX.Drafts".
* LSUB (\HasNoChildren) "." "INBOX.Trash".
* LSUB (\HasNoChildren) "." "INBOX.Sent".
* LIST (\Marked \HasChildren) "." "INBOX".
* LIST (\Marked \HasChildren) "." "INBOX".
* LIST (\Marked \HasChildren) "." "INBOX".
* LIST (\Marked \HasChildren) "." "INBOX".
* LIST (\Marked \HasChildren) "." "INBOX".
* LIST (\Marked \HasChildren) "." "INBOX".    (repeated about 200 times)


IMHO, php4 is right in killing this script because it loops endlessly. This
might be connected to Horde Bug #1620 but I could not test this yet.

Please investigate - if you need the full log files, just tell me. If you want
me to insert debug commands in the IMP4 scripts, I'll happily help.

Thanks!


Jens



-- System Information:
Debian Release: 3.1
  APT prefers unstable (however my "Default-Release" is set to "stable")
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.29hf4-jb-050316
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages imp4 depends on:
ii  horde3                       3.0.4-4     horde web application framework
ii  php4-imap                    4:4.3.10-16 IMAP module for php4

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to