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]