On Wed, 2008-06-04 at 20:20 +0200, Juan Asensio Sánchez wrote:
Program received signal SIGSEGV, Segmentation fault. mail_get_physical_size (mail=0x8129ba8, size_r=0x0) at mail.c:100 100 return p->v.get_physical_size(mail, size_r); (gdb) bt full #0 mail_get_physical_size (mail=0x8129ba8, size_r=0x0) at mail.c:100 No locals. #1 0xb7db25c5 in quota_check (t=0x8129ba8, mail=0x0) at quota-storage.c:148 qt = (struct quota_transaction_context *) 0x0 ret = <value optimized out> too_large = 8
The values are still a bit broken. Compiling without -O2 would probably show what they really are.
But looking at the antispam code I think there's one bug:
static int antispam_save_finish(struct mail_save_context *ctx) struct mail *dest_mail = ast->mail;
I think ast->mail can be NULL. It should maybe be instead:
dest_mail = ctx->dest_mail != NULL ? ctx->dest_mail : ast->mail;