hi,
PHP 5.3.3 is built with imap-2007e and that cause PHP segfault on error or
partial IMAP server response.
See gdb session:
Core was generated by `php -e download_emails.php [..cut..]'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f7c33b28221 in tcp_host (stream=0x0) at tcp_unix.c:767
767 {
Missing separate debuginfos, use: debuginfo-install
audit-libs-2.1-5.el6.x86_64 bzip2-libs-1.0.5-7.el6_0.x86_64 [..cut..]
(gdb) bt
#0 0x00007f7c33b28221 in tcp_host (stream=0x0) at tcp_unix.c:767
#1 0x00007f7c33b6309c in imap_parse_header (stream=<value optimized out>,
env=0x22803e0, hdr=0x7fffb595cf00, stl=0x0) at imap4r1.c:4525
#2 0x00007f7c33b633e2 in imap_cache (stream=0x21c5ba0, msgno=1, seg=<value
optimized out>, stl=0x0, text=0x7fffb595cf00) at imap4r1.c:5022
#3 0x00007f7c33b6601c in imap_parse_unsolicited (stream=0x21c5ba0,
reply=0x21c5e08) at imap4r1.c:3835
#4 0x00007f7c33b66bf3 in imap_reply (stream=0x21c5ba0, tag=0x7fffb595d5b0
"00000005") at imap4r1.c:3560
#5 0x00007f7c33b66de3 in imap_sout (stream=0x21c5ba0, tag=0x7fffb595d5b0
"00000005", base=0x21c5eb0 "", s=0x7fffb595d1a8) at imap4r1.c:3519
#6 0x00007f7c33b680d5 in imap_send (stream=0x21c5ba0, cmd=0x7f7c33c03039
"FETCH", args=0x7fffb595d640) at imap4r1.c:3129
#7 0x00007f7c33b6c987 in imap_msgdata (stream=0x21c5ba0, msgno=1,
section=<value optimized out>, first=0, last=0, lines=<value optimized
out>,
flags=<value optimized out>) at imap4r1.c:1845
#8 0x00007f7c33b412df in mail_fetch_header (stream=0x21c5ba0, msgno=1,
section=0x0, lines=0x0, len=0x0, flags=2) at mail.c:1748
#9 0x00007f7c33e26963 in zif_imap_fetchheader (ht=2,
return_value=0x217bc38, return_value_ptr=<value optimized out>,
this_ptr=<value optimized out>, return_value_used=<value optimized out>)
at /usr/src/debug/php-5.3.3/ext/imap/php_imap.c:3140
#10 0x00000000005f5e58 in zend_do_fcall_common_helper_SPEC
(execute_data=<value optimized out>)
at /usr/src/debug/php-5.3.3/Zend/zend_vm_execute.h:316
#11 0x00000000005cd180 in execute (op_array=0x142e380) at
/usr/src/debug/php-5.3.3/Zend/zend_vm_execute.h:107
#12 0x00000000005a787d in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /usr/src/debug/php-5.3.3/Zend/zend.c:1194
#13 0x0000000000555b48 in php_execute_script (primary_file=0x7fffb5960820)
at /usr/src/debug/php-5.3.3/main/main.c:2260
#14 0x00000000006315ee in main (argc=6, argv=0x7fffb5960a28) at
/usr/src/debug/php-5.3.3/sapi/cli/php_cli.c:1192
(gdb) frame 0
#0 0x00007f7c33b28221 in tcp_host (stream=0x0) at tcp_unix.c:767
767 {
(gdb) frame 1
#1 0x00007f7c33b6309c in imap_parse_header (stream=<value optimized out>,
env=0x22803e0, hdr=0x7fffb595cf00, stl=0x0) at imap4r1.c:4525
4525 rfc822_parse_msg (&nenv,NIL,(char *) hdr->data,hdr->size,NIL,
(gdb) print hdr->data
$1 = (unsigned char *) 0x2272e30 "\r\n00000005 NO FETCH failed: Internal
error\r\n"
(gdb) print hdr->size
$2 = 2386
(gdb) list
4520 void imap_parse_header (MAILSTREAM *stream,ENVELOPE **env,SIZEDTEXT
*hdr,
4521 STRINGLIST *stl)
4522 {
4523 ENVELOPE *nenv;
4524 /* parse what we can from this header */
4525 rfc822_parse_msg (&nenv,NIL,(char *) hdr->data,hdr->size,NIL,
4526 net_host (LOCAL->netstream),stream->dtb->flags);
4527 if (*env) { /* need to merge this header into envelope? */
4528 if (!(*env)->newsgroups) { /* need Newsgroups? */
4529 (*env)->newsgroups = nenv->newsgroups;
(gdb) frame 2
#2 0x00007f7c33b633e2 in imap_cache (stream=0x21c5ba0, msgno=1, seg=<value
optimized out>, stl=0x0, text=0x7fffb595cf00) at imap4r1.c:5022
5022 else imap_parse_header (stream,&elt->private.msg.env,text,stl);
(gdb) list
5017 stream->msgno = msgno;
5018 }
5019 imap_parse_header (stream,&stream->env,text,stl);
5020 }
5021 /* regular caching */
5022 else imap_parse_header (stream,&elt->private.msg.env,text,stl);
5023 }
5024 }
5025 /* top level text */
5026 else if (!strcmp (seg,"TEXT")) {
(gdb) print text
$3 = (struct mail_sizedtext *) 0x7fffb595cf00
(gdb) print text->data
$4 = (unsigned char *) 0x2272e30 "\r\n00000005 NO FETCH failed: Internal
error\r\n"
(gdb) frame 3
#3 0x00007f7c33b6601c in imap_parse_unsolicited (stream=0x21c5ba0,
reply=0x21c5e08) at imap4r1.c:3835
3835 else imap_cache (stream,msgno,md.what,stl,&text);
(gdb) frame 4
#4 0x00007f7c33b66bf3 in imap_reply (stream=0x21c5ba0, tag=0x7fffb595d5b0
"00000005") at imap4r1.c:3560
3560 imap_parse_unsolicited (stream,reply);
(gdb) frame 5
..
any ideas?
/v
_______________________________________________
Imap-uw mailing list
[email protected]
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw