On Mon, 2007-04-16 at 12:17 +0800, M1 wrote:
> Apr 16 12:11:17 mx postfix/pipe[2588]: C8D9B121BC7: to=<[EMAIL PROTECTED]>, 
> relay=dovecot, delay=0.12, delays=0.06/0.01/0/0.05, dsn=5.3.0, 
> status=bounced (Command died with status 2: "/usr/libexec/dovecot/deliver". 
> Command output: input in flex scanner failed )

I'm not sure if I should hate libsieve, flex or both, but this error
message is horrible. I had no idea what it meant before looking at the
sources. The code that produces it is in src/libsieve/sieve-lex.c:

                while ( (result = fread(buf, 1, max_size, yyin))==0 && 
ferror(yyin)) \
                        { \
                        if( errno != EINTR) \
                                { \
                                YY_FATAL_ERROR( "input in flex scanner failed" 
); \
                                break; \
                                } \

So fread() fails, but it doesn't bother telling why. You could change
the YY_FATAL_ERROR() to something like:

fprintf(stderr, "input in flex scanner failed: %s", strerror(errno));

That could give additional information. Although I've no idea why fread() would 
fail here.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to