ID:               15595
 Updated by:       [EMAIL PROTECTED]
-Summary:          imap routines hang when "To" header is too large
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         IMAP related
 Operating System: Solaris-i86
 PHP Version:      4.1.1
 New Comment:

Is there anything I can do to help this along?  We've been bitten twice
by this in the last few days.


Previous Comments:
------------------------------------------------------------------------

[2002-02-18 18:09:33] [EMAIL PROTECTED]

An exact script is difficult. (I've spent a day or two trying to pin it
down to a simple routine, not with any great success).

However, it looks like

$h = @imap_header($imp->stream, imap_msgno($imp->stream, $msgnum));

is hanging with a message that has to header of about 4K (again, this
probably violates rfc822, but it shouldn't hang like it does).

$imp->stream is constructed like this (as you'd expect):

$connstr = '{' . $this->server . ':' . $this->port . '}' .
$this->mailbox;
$this->stream = @imap_open($connstr, $this->user, $this->pass);


Thanks.

------------------------------------------------------------------------

[2002-02-18 08:29:31] [EMAIL PROTECTED]

Can you provide a simple sample script?

------------------------------------------------------------------------

[2002-02-18 04:23:34] [EMAIL PROTECTED]

The starting point for this was that our webmail (customised IMP)would
crash if the "To" header was too large.  Probably the header violates
rfc822, but php should be able to cope, or at least fail gracefully and
not hang.

We are running php built with the imap4.5 uwash c-client, with ldap,
with mysql.  Apache is built with mods rewrite, mime_magic, the lastest
fastcgi, the latest modssl.  The fastcgi connection is used for most
pages rendered from our site.

Playing around with truss led us to suspect mime_header_decode was at
fault, ie:

php_if_imap_mime_header_decode+0x6d3:           movl   (%ebx),%edx

Now, in getting a gdb backtrace, things got very wierd.  Below is the
output - but it occurs not only when we try to read the email with the
oversized to header, but when I try to do something mundane like parse
the whole mailbox.

So maybe there are two problems, needless to say - I hope the truss
line is useful, because I wouldn't rely on the gdb backtrace.

Thanks.

Program received signal SIGPIPE, Broken pipe.
0xdfee1f3b in _writev ()
(gdb) bt
#0  0xdfee1f3b in _writev ()
#1  0x80b2254 in ssl_io_unregister ()
#2  0x81ba5f4 in ap_hook_call ()
#3  0x81b9d41 in ap_hook_call ()
#4  0x8196641 in ap_bfilbuf ()
#5  0x8196a6c in ap_bfilbuf ()   
#6  0x8196b38 in ap_bwrite () 
#7  0x816537e in php_mergesort () 
#8  0x8166ec5 in php_mergesort () 
#9  0x816749d in php_mergesort () 
#10 0x8197ddb in ap_invoke_handler () 
#11 0x81ac451 in ap_some_auth_required ()
#12 0x81ac4b0 in ap_process_request ()
#13 0x81a3ad1 in ap_child_terminate ()
#14 0x81a3c80 in ap_child_terminate ()
#15 0x81a3ddb in ap_child_terminate ()
#16 0x81a43d8 in ap_child_terminate ()
#17 0x81a4b9b in main ()
#18 0x809b947 in _start ()


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=15595&edit=1

Reply via email to