[Dovecot] dot-containing foldernames \HasNoChildren bug ?
Samuel Kvasnica
bugreports at list.ims.co.at
Mon Aug 9 19:46:00 EEST 2010
On 08/09/2010 06:01 PM, Timo Sirainen wrote:
> On Sat, 2010-08-07 at 19:29 +0200, Samuel Kvasnica wrote:
>
>> - } else if (*str == ns->list->hierarchy_sep ||
>> - *str == mlist->escape_char || *str == '/')
>> + } else {
>> + if (*str == ns->list->hierarchy_sep || ( mlist && // SK mlist was zero check added !
>> + *str == mlist->escape_char) || *str == '/'){
>> str_printfa(esc, "%c%02x", mlist->escape_char, *str);
>> - else
>> + }
>> + else{
>> str_append_c(esc, *str);
>> + }
>> + }
> Was there a reason for this change?
and here is the backtrace (it crashes again using your official path
with no mlist check):
Core was generated by
`dovecot/imap'.
Program terminated with signal 11, Segmentation
fault.
#0 list_escape (ns=0x6488b0, str=0x659eff "%", vname=true) at
listescape-plugin.c:75
75 *str == mlist->escape_char || *str ==
'/')
(gdb) bt
full
#0 list_escape (ns=0x6488b0, str=0x659eff "%", vname=true) at
listescape-plugin.c:75
mlist =
0x0
esc =
0x621470
i =
0
#1 0x00007fa3d07d5ef8 in iter_escape_patterns (flags=<value optimized
out>, patterns=<value optimized out>, list=<value optimized out>) at
listescape-plugin.c:151
orig_ns =
0x6214af
i =
1
#2 listescape_mailbox_list_iter_init (flags=<value optimized out>,
patterns=<value optimized out>, list=<value optimized out>) at
listescape-plugin.c:169
mlist =
0x64f590
ctx = <value optimized
out>
#3 0x00007fa3d1001f8b in acl_mailbox_list_iter_init (list=0x64f1c8,
patterns=0x6213c8, flags=4866) at
acl-mailbox-list.c:194
ctx =
0x688ca0
i = <value optimized
out>
inboxcase = <value optimized
out>
#4 0x000000000040c746 in list_namespace_init (ctx=<value optimized
out>) at
cmd-list.c:773
pat =
0x6213c8
ns =
0x645d10
cur_ref = 0x659ef0
""
pattern = 0x659ef8
"Shared/%"
inbox_match = <value optimized
out>
#5 cmd_list_continue (ctx=<value optimized out>) at
cmd-list.c:810
_data_stack_cur_id =
4
ctx =
0x6576a8
#6 0x000000000040cd02 in cmd_list_full (cmd=0x6575a8, lsub=true) at
cmd-list.c:992
client =
0x656e48
args =
0x659e40
list_args =
0x7fa3d1bdca18
arg_count = <value optimized
out>
ctx =
0x6576a8
patterns = {arr = {buffer = 0x6576f8, element_size = 8}, v =
0x6576f8, v_modifiable =
0x6576f8}
pattern = 0x659ef8
"Shared/%"
patterns_strarr =
0x657730
#7 0x00000000004103ad in client_command_input (cmd=0x6575a8) at
imap-client.c:660
client = 0x656e48
command = <value optimized out>
__FUNCTION__ = "client_command_input"
#8 0x000000000041048d in client_command_input (cmd=0x6575a8) at
imap-client.c:710
client = 0x656e48
command = 0x651898
__FUNCTION__ = "client_command_input"
#9 0x00000000004106b5 in client_handle_next_command (remove_io_r=<value
optimized out>, client=<value optimized out>) at imap-client.c:751
size = 25
#10 client_handle_input (remove_io_r=<value optimized out>,
client=<value optimized out>) at imap-client.c:763
_data_stack_cur_id = 3
---Type <return> to continue, or q <return> to quit---
ret = false
remove_io = <value optimized out>
handled_commands = false
__FUNCTION__ = "client_handle_input"
#11 0x0000000000410fdf in client_input (client=0x656e48) at
imap-client.c:802
cmd = <value optimized out>
output = 0x657428
bytes = <value optimized out>
__FUNCTION__ = "client_input"
#12 0x00007fa3d1bce5f5 in io_loop_handler_run (ioloop=<value optimized
out>) at ioloop-epoll.c:212
ctx = 0x6297d0
event = 0x629840
list = 0x657500
io = 0x6574c0
tv = {tv_sec = 4, tv_usec = 481822}
t_id = 2
msecs = <value optimized out>
ret = 1
i = 0
call = <value optimized out>
#13 0x00007fa3d1bcd778 in io_loop_run (ioloop=0x6295c0) at ioloop.c:350
No locals.
#14 0x00007fa3d1bbd3c3 in master_service_run (service=0x629490,
callback=0x659eff) at master-service.c:496
No locals.
#15 0x0000000000418f71 in main (argc=1, argv=0x629370) at main.c:358
set_roots = {0x41c480, 0x0}
service_flags = <value optimized out>
storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT
postlogin_socket_path = 0x0
username = 0x0
c = <value optimized out>
More information about the dovecot
mailing list