]> git.ipfire.org Git - thirdparty/dovecot/core.git/commit
lib-mail, lib-imap: Optimize parsing large number of address headers
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 8 Feb 2024 22:57:12 +0000 (00:57 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Wed, 7 Aug 2024 13:15:57 +0000 (13:15 +0000)
commit1481c04f02df7647f520df65d63df7626bf0ee32
treecb12eeb23328cbb2dc915919594a0eb522994e45
parentda61d20311da34f22944c6111a0b97ea2a1f8a47
lib-mail, lib-imap: Optimize parsing large number of address headers

Every header was appended to a linked list by walking through the whole
list, causing excessive CPU usage when the list became large enough.
Fixed by changing struct message_part_envelope to use struct
message_address_list, which stores also linked list tail pointers. This
allows quickly appending to the end of the linked list.
src/lib-imap/imap-envelope.c
src/lib-mail/message-part-data.c
src/lib-mail/message-part-data.h
src/lib-storage/index/index-search-mime.c