[PATH] expire plugins segfault with misconfigured dict
Lazy
lazy404 at gmail.com
Mon Jul 7 13:18:10 UTC 2014
dovecot 2.2.13
With configuration like
plugin {
expire_dict = blblbla
}
expiere plugins segfaults during deinit. It might also segfault if the
dict service was unavaiable.
attached bellow is a diff against 2.2.13
Jul 7 14:51:11 dovecot1 dovecot: lmtp(10548, lazy): Error: expire
plugin: dict_init(blblbla) failed: Dictionary URI is missing ':':
blblbla
Jul 7 14:51:11 dovecot1 dovecot: lmtp(10548, lazy): Fatal: master:
service(lmtp): child 10548 killed with signal 11 (core dumps disabled)
Program received signal SIGSEGV, Segmentation fault.
0x00007f337d8af8ae in dict_deinit (_dict=0x8) at dict.c:87
87 struct dict *dict = *_dict;
(gdb) bt
#0 0x00007f337d8af8ae in dict_deinit (_dict=0x8) at dict.c:87
#1 0x00007f337c88f647 in expire_mail_user_deinit (user=0x1b60e80) at
expire-plugin.c:299
#2 0x00007f337cca3e7f in quota_user_deinit (user=0x1b60e80) at
quota-storage.c:491
#3 0x00007f337dbcb0f1 in mail_user_unref (_user=0x1b2d070) at mail-user.c:163
#4 0x000000000040832b in client_input_data_write_local
(client=0x1b2cf60, input=0x1b43f10) at commands.c:830
#5 0x0000000000408755 in client_input_data_write (client=0x1b2cf60)
at commands.c:939
#6 0x0000000000408b18 in client_input_data_handle (client=0x1b2cf60)
at commands.c:1033
#7 0x0000000000408b52 in client_input_data (client=0x1b2cf60) at
commands.c:1042
#8 0x00007f337d8fc723 in io_loop_call_io (io=0x1b2c360) at ioloop.c:441
#9 0x00007f337d8fe6e5 in io_loop_handler_run_internal
(ioloop=0x1b27740) at ioloop-epoll.c:220
#10 0x00007f337d8fc8be in io_loop_handler_run (ioloop=0x1b27740) at ioloop.c:488
#11 0x00007f337d8fc817 in io_loop_run (ioloop=0x1b27740) at ioloop.c:465
#12 0x00007f337d888d40 in master_service_run (service=0x1b275d0,
callback=0x404b5c <client_connected>) at master-service.c:566
#13 0x0000000000404db2 in main (argc=1, argv=0x1b27390) at main.c:122
(gdb) p _dict
$1 = (struct dict **) 0x8
(gdb) bt full
#0 0x00007f337d8af8ae in dict_deinit (_dict=0x8) at dict.c:87
dict = 0x10
#1 0x00007f337c88f647 in expire_mail_user_deinit (user=0x1b60e80) at
expire-plugin.c:299
euser = 0x0
#2 0x00007f337cca3e7f in quota_user_deinit (user=0x1b60e80) at
quota-storage.c:491
quser = 0x1b62958
quota_set = 0x1b656a0
#3 0x00007f337dbcb0f1 in mail_user_unref (_user=0x1b2d070) at mail-user.c:163
user = 0x1b60e80
__FUNCTION__ = "mail_user_unref"
#4 0x000000000040832b in client_input_data_write_local
(client=0x1b2cf60, input=0x1b43f10) at commands.c:830
session = 0x1b60a70
src_mail = 0x1b5c250
old_uid = 300
first_uid = 4294967295
__FUNCTION__ = "client_input_data_write_local"
#5 0x0000000000408755 in client_input_data_write (client=0x1b2cf60)
at commands.c:939
input = 0x1b43f10
ret = true
#6 0x0000000000408b18 in client_input_data_handle (client=0x1b2cf60)
at commands.c:1033
data = 0x1b556b8 "\330\001"
size = 2
ret = -1
#7 0x0000000000408b52 in client_input_data (client=0x1b2cf60) at
commands.c:1042
--
Michal Grzedzicki
-------------- next part --------------
A non-text attachment was scrubbed...
Name: expire.path
Type: application/octet-stream
Size: 571 bytes
Desc: not available
URL: <http://dovecot.org/pipermail/dovecot/attachments/20140707/981cdbeb/attachment.obj>
More information about the dovecot
mailing list