[Dovecot] Error using antispam plugin

Juan Asensio Sánchez okelet at gmail.com
Wed Jun 4 21:53:10 EEST 2008


Applying the change Timo has said i get this:

==============================================================

(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
mail_get_physical_size (mail=0x81203a0, 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=0x81203a0, size_r=0x0) at mail.c:100
No locals.
#1  0xb7e405c5 in quota_check (t=0x81203a0, mail=0x0) at quota-storage.c:148
	qt = (struct quota_transaction_context *) 0x0
	ret = <value optimized out>
	too_large = 8
#2  0xb7e34048 in antispam_save_finish (ctx=0x8123178) at
antispam-storage-1.1.c:181
	asbox = (struct antispam_mailbox *) 0x811b298
	ast = (struct antispam_internal_context *) 0x81203d8
	dest_mail = (struct mail *) 0x8122d70
	ret = 135093999
#3  0x0805a1c8 in cmd_append_continue_message (cmd=0x810d4e0) at
cmd-append.c:405
	client = (struct client *) 0x810bd48
	ctx = (struct cmd_append_context *) 0x810d528
	size = 135314760
	ret = <value optimized out>
#4  0x0805a59a in cmd_append_continue_parsing (cmd=0x810d4e0) at
cmd-append.c:353
	uid2 = <value optimized out>
	msg = <value optimized out>
	sync_flags = <value optimized out>
	imap_flags = <value optimized out>
	uid_validity = <value optimized out>
	uid1 = <value optimized out>
	client = (struct client *) 0x810bd48
	ctx = (struct cmd_append_context *) 0x810d528
	args = (const struct imap_arg *) 0x81204a8
	flags_list = (const struct imap_arg *) 0x8120538
	flags = MAIL_SEEN
	keywords_list = (const char * const *) 0x0
	keywords = (struct mail_keywords *) 0x0
	internal_date_str = 0x0
	internal_date = -1
	ret = 0
	timezone_offset = 0
	nonsync = false
	__PRETTY_FUNCTION__ = "cmd_append_continue_parsing"
#5  0x0805a7b5 in cmd_append (cmd=0x810d4e0) at cmd-append.c:499
	storage = (struct mail_storage *) 0x810b660
	box = <value optimized out>
	client = (struct client *) 0x810bd48
	ctx = (struct cmd_append_context *) 0x810d528
	mailbox = 0x8110588 "Sent"
#6  0x0805fa6c in client_command_input (cmd=0x810d4e0) at client.c:580
	client = (struct client *) 0x810bd48
	command = <value optimized out>
---Type <return> to continue, or q <return> to quit---
	__PRETTY_FUNCTION__ = "client_command_input"
#7  0x0805fb15 in client_command_input (cmd=0x810d4e0) at client.c:629
	client = (struct client *) 0x810bd48
	command = (struct command *) 0x8
	__PRETTY_FUNCTION__ = "client_command_input"
#8  0x08060305 in client_handle_input (client=0x810bd48) at client.c:670
	_data_stack_cur_id = 3
	ret = <value optimized out>
	remove_io = <value optimized out>
	handled_commands = false
#9  0x0806050e in client_input (client=0x810bd48) at client.c:725
	cmd = <value optimized out>
	output = (struct ostream *) 0x810becc
	bytes = 34
	__PRETTY_FUNCTION__ = "client_input"
#10 0x080d9100 in io_loop_handler_run (ioloop=0x8108ab8) at ioloop-epoll.c:201
	ctx = <value optimized out>
	event = (const struct epoll_event *) 0x8108bf0
	list = (struct io_list *) 0x810d118
	io = (struct io_file *) 0x810bf28
	tv = {tv_sec = 4, tv_usec = 999383}
	t_id = 2
	msecs = <value optimized out>
	ret = 1
	i = 0
	j = 0
	call = <value optimized out>
#11 0x080d8098 in io_loop_run (ioloop=0x8108ab8) at ioloop.c:308
No locals.
#12 0x080680db in main (argc=Cannot access memory at address 0x8
) at main.c:293
	home = 0x0
(gdb)

==============================================================

Very similar to previous post (if not identical). Timo, how can i
compile with the -O2 option when building from debian source packages?

2008/6/4 Johannes Berg <johannes at sipsolutions.net>:
>
>> 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;
>
> Yeah, probably lost that when copying from the quota code. Juan, can you
> try that?
>
> OTOH, super (i.e. the quota plugin) will never see this value and that's
> where it seems to crash.
>
> johannes
>


More information about the dovecot mailing list