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.
signature.asc
Description: This is a digitally signed message part
