Cores in Fetch binary of msg file is deleted.

Ken Murchison murch at andrew.cmu.edu
Mon Sep 25 12:29:34 EDT 2006


Patch applied to CVS.  Thanks.


Esh, Thomas D (Tom) wrote:
> We are using cyrus-imapd-2.3.7.
>  
> We were getting imapd core dumps in  "fetch binary[n]" commands
> if another imap session had deleted the msg file during the current imap 
> session. 
> Here is the backtrack of the core:
>  
> #0  charset_readbase64 (state=0xbfffcdf0, buf=0x8157980 "???y\025\b\b56@",
>     size=32022) at charset.c:1174
> #1  0x080939d0 in charset_decode_mimebody (
>     msg_base=0x62e <Address 0x62e out of bounds>, len=32022, encoding=2,
>     retval=0xbfffd678, alloced=0, outlen=0xbfffd69c) at charset.c:877
> #2  0x0806bc47 in index_fetchsection (resp=0xbfffd730 "* 1 FETCH 
> (BINARY[2] ",
>     msg_base=0x0, msg_size=0, format=0, section=0x8157948 "2]",
>     cacheitem=0x4225e388 <Address 0x4225e388 out of bounds>, size=32022,
>     start_octet=0, octet_count=0) at index.c:1950
> #3  0x0806c915 in index_fetchreply (mailbox=0x813c540, msgno=1,
>     rock=0xbfffd8e0) at index.c:2638
> #4  0x08065c25 in index_forsequence (mailbox=0x813c540, 
> sequence=0x8154981 "",
>     usinguid=0, proc=0x806bda0 <index_fetchreply>, rock=0xbfffd8e0,
>     fetchedsomething=0xbfffd85c) at index.c:1731
> #5  0x080585dc in cmd_fetch (tag=0x81548a0 "00000005", 
> sequence=0x8154980 "1",
>  
>  
> The problem is msg_base is zero, because the file open in 
> mailbox_map_message fails because
> the file doesn't exist.
>  
>  
> The fix is to change index.c line 1946 from:
>  
>             if ((p = strstr(resp, "BINARY"))) {
>  
>  
> to
>             if (msg_base && (p = strstr(resp, "BINARY"))) {
>  
> This will cause the response to be something like this:
>  
> 1 fetch 2 binary[1]
> * OK Message 2 no longer exists
> * 2 FETCH (BINARY[1] "")
> 1 OK Completed (0.000 sec)
>  
>  
>  
> Tom
>  
>  
>  
> 
> Thomas D. Esh             Email: esh at lucent.com
> Lucent Technologies         MMS: 7403342319 at vzwpix.com
> Room 3B-316                Work: 614-367-4390
> 6200 East Broad Street   Mobile: 740-334-2319
> Columbus, OH 43213         Home: 740-321-1245
> Our lives begin to end the day we become silent about
> things that matter. -- Martin Luther King, Jr.
> 
>  


-- 
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University


More information about the Cyrus-devel mailing list