Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 103383

Summary: Assert in dovecot when no domain in sender email address
Product: [Retired] Red Hat Linux Beta Reporter: Blair Zajac <blair>
Component: dovecotAssignee: Jeremy Katz <katzj>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: beta1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-09-02 21:41:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 100644    
Attachments:
Description Flags
Patch for assert none

Description Blair Zajac 2003-08-29 15:56:03 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624

Description of problem:
Here's a complete bug report for I sent to the author of dovecot-0.99.10.  I'm
attaching a patch and the CVS version of dovecot also fixes this issue, but you
probably don't want to switch to CVS HEAD, since a new indexing system is going
in.

BTW, the RedHat Bugzilla Rawhide category does not have an entry for dovecot.

Best,
Blair


Hi Timo,

Thanks for writing dovecot.  I've really enjoyed the speedups in reading email
since switching from UW imap.

I'm using the RedHat Rawhide version of dovecot-0.99.10-3.

I'm getting a core dump on my Trash file when I run the following commands.

x select "Trash"
x UID fetch 1:* (FLAGS)
x uid SEARCH UNDELETED HEADER FROM "xyz"

Here's a backtrace.  The * on the line

(%s): assertion failed: (%s)", args=0biffed4 "\232*\n\b\006\001") at

is an unprintable character that gdb is printing that doesn't copy and
paste into this message.  If you think the value of the * is
important, I could figure it out.  Any idea how to get gdb to print
the hex value of this?

#0  0xffffe002 in ?? ()
#1  0x42028b93 in abort () from /lib/tls/libc.so.6
#2  0x08093a14 in default_panic_handler (format=0x80aa4c0 "file %s: line %d
(%s): assertion failed: (%s)", args=0biffed4 "\232*\n\b\006\001") at
failures.c:141
#3  0x08093bc1 in i_panic (format=0x80aa4c0 "file %s: line %d (%s): assertion
failed: (%s)") at failures.c:198
#4  0x0808c497 in message_address_write (str=0x80afa70, addr=0x80afa40) at
message-address.c:262
#5  0x08073958 in search_header_arg (arg=0x80ba7f8, context=0xbfffef10) at
index-search.c:546
#6  0x08085755 in search_arg_foreach (arg=0x80ba7f8, callback=0x8073660
<search_header_arg>, context=0xbfffef10) at mail-search.c:70
#7  0x08085785 in mail_search_args_foreach (args=0x80ba7f8, callback=0x8073660
<search_header_arg>, context=0xbfffef10) at mail-search.c:82
#8  0x08073c0b in search_header (part=0x0, hdr=0x80bd9c0, context=0xbfffef10)
at index-search.c:620
#9  0x0808f6ac in message_parse_header (part=0x0, input=0x80bd954,
hdr_size=0x0, callback=0x8073a8e <search_header>, context=0xbfffef10) at
message-parser.c:560
#10 0x08073e11 in search_arg_match_text (args=0x80ba7d8, ctx=0x80bb7d0) at
index-search.c:672
#11 0x0807499e in index_storage_search_next (ctx=0x80bb7d0) at
index-search.c:1024
#12 0x08053be6 in imap_search (client=0x80b3b30, charset=0x0,
sargs=0x80ba7d8) at cmd-search.c:28
#13 0x08053f05 in cmd_search (client=0x80b3b30) at cmd-search.c:93
#14 0x08055316 in cmd_uid (client=0x80b3b30) at cmd-uid.c:19
#15 0x08055cca in client_handle_input (client=0x80b3b30) at client.c:314
#16 0x08055d8f in _client_input (context=0x80b3b30) at client.c:350
#17 0x08098fe3 in io_loop_handler_run (ioloop=0x80b31a0) at ioloop-poll.c:214
#18 0x08098600 in io_loop_run (ioloop=0x80b31a0) at ioloop.c:258
#19 0x0805d741 in main (argc=1, argv=0xbffff114, envp=0xbffff11c) at
main.c:179
#20 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6
(gdb) q

This message appears in my log file:

imap-login: Aug 18 21:10:05 Info: Login: blair [127.0.0.1]
imap(blair): Aug 18 21:10:22 Panic: file message-address.c: line 262
(message_address_write): assertion failed: (addr->domain != NULL)
dovecot: Aug 18 21:10:22 Error: child 27461 (imap) killed with signal 6

> Timo says
> > On Tue, 2003-08-19 at 08:27, Blair Zajac wrote:
> > x uid SEARCH UNDELETED HEADER FROM "xyz"
> 
> Yes, header searching was buggy. It's been fixed in CVS. I can send a
> patch for it too if you need it.


Version-Release number of selected component (if applicable):
dovecot-0.99.10-3

How reproducible:
Always

Steps to Reproduce:
1. Get a Maildir mailbox with a message with no sender domain.
2. Run a search using your mail client.
3. Wait for the core dump.

Additional info:

Comment 1 Blair Zajac 2003-08-29 15:57:09 UTC
Created attachment 94069 [details]
Patch for assert

Comment 2 Jeremy Katz 2003-09-02 21:41:48 UTC
Will be in 0.99.10-4