Re: [Exim] Format error in spool file

Top Page
Delete this message
Reply to this message
Author: Gavin Sherry
Date:  
To: Ray Miller
CC: exim-users
Subject: Re: [Exim] Format error in spool file
Hi Ray,

On Thu, 8 Mar 2001, Ray Miller wrote:

>
> I've been investigating a problem with "Format error in spool file"


[snip]

>
> LOG: 0 MAIN
> <= ray.miller@??? U=ray P=local S=585
> [ray@bench:~]$ Exim version 3.12 debug level 1 uid=8 gid=8
> probably Berkeley DB version 1.8x (native mode)
> delivering message 14b0BO-0003fp-00
> Format error in spool file 14b0BO-0003fp-00-H
> LOG: 0 MAIN
> Format error in spool file 14b0BO-0003fp-00-H: size=939
>


This error is occuring in deliver_message() (src/deliver.c). The code
presumes that the message is too big (hence printing the size), but this
is obviously not the case.

    if (stat(big_buffer, &statbuf) == 0)
      {
      int size = statbuf.st_size;   /* Because might be a long */
      log_write(0, LOG_MAIN, "Format error in spool file %s: size=%d",
        spoolname, size);
      }


st_size should be tested. (What size is too long?)

The original error comes from spool_read_header() which sets errno to
ERRNO_SPOOLFORMAT. There are lots of places in spool_read_header that this
error is set. My feeling is, however, that it is the To: header.

It would probably be more helpful if the error handling was more specific
in this part of the code - but this is often too time consuming for the
resulting benefit.

Hope this helps

Gavin Sherry
Alcove Systems Engineering.