Hi All,

   In Dovecot 2.4.1 if I start doveadm force-resync with a non-existent
   mailbox that ends in a slash, the command crashes:

   gdb -ex run --args doveadm force-resync -A test/

   Thread 1 (Thread 0x7f9e5cc4a980 (LWP 442) "doveadm"):
   #0  fs_list_next_root (ctx=ctx@entry=0x55d248df6898) at
   list/mailbox-list-fs-iter.c:507
          roots = <error reading variable roots (Cannot access memory at
   address 0x0)>
          count = <error reading variable count (Cannot access memory at
   address 0x8)>
          __func__ = "fs_list_next_root"
   #1  0x00007f9e5dc417c2 in fs_list_iter_reset (ctx=0x55d248df6898) at
   list/mailbox-list-fs-iter.c:830
          __func__ = <optimized out>
   #2  fs_list_iter_next (_ctx=0x55d248df6898) at
   list/mailbox-list-fs-iter.c:912
          ctx = <optimized out>
          ret = 0
          __func__ = "fs_list_iter_next"
   #3  0x00007f9e5dc4f8dd in mailbox_list_iter_next_call (ctx=0x55d248df6898)
   at list/mailbox-list-iter.c:1009
          info = <optimized out>
          set = 0x148d86ee0
          ret = <optimized out>
   #4  mailbox_list_iter_next (ctx=0x55d248df6898) at
   list/mailbox-list-iter.c:1098
          _data_stack_cur_id = 5
          info = <optimized out>
   #5  0x00007f9e5dc50899 in mailbox_list_ns_iter_try_next
   (_ctx=0x55d248df6488, info_r=<synthetic pointer>) at
   list/mailbox-list-iter.c:616
          ctx = 0x55d248df6488
          ns = <optimized out>
          info = <optimized out>
          suffix = <optimized out>
          has_children = <optimized out>
          __func__ = <optimized out>
   #6  mailbox_list_ns_iter_next (_ctx=0x55d248df6488) at
   list/mailbox-list-iter.c:678
          info = 0x0
   #7  0x00007f9e5dc4f8dd in mailbox_list_iter_next_call (ctx=0x55d248df6488)
   at list/mailbox-list-iter.c:1009
          info = <optimized out>
          set = 0x2fffffffd0
          ret = <optimized out>
   #8  mailbox_list_iter_next (ctx=0x55d248df6488) at
   list/mailbox-list-iter.c:1098
          _data_stack_cur_id = 4
          info = <optimized out>
   #9  0x000055d20bc81a20 in cmd_force_resync_run (_ctx=0x55d248db57a8,
   user=0x55d248dc6318) at
   /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm-mail.c:369
          ctx = 0x55d248db57a8
          iter_flags = (MAILBOX_LIST_ITER_RAW_LIST |
   MAILBOX_LIST_ITER_NO_AUTO_BOXES | MAILBOX_LIST_ITER_STAR_WITHIN_NS |
   MAILBOX_LIST_ITER_RETURN_NO_FLAGS | MAILBOX_LIST_ITER_FORCE_RESYNC)
          ns_mask = (MAIL_NAMESPACE_TYPE_PRIVATE | MAIL_NAMESPACE_TYPE_SHARED
   | MAIL_NAMESPACE_TYPE_PUBLIC)
          iter = 0x55d248df6488
          info = <optimized out>
          ret = <optimized out>
          patterns = {0x55d248db5300 "test/", 0x0}
   #10 0x000055d20bc856c2 in doveadm_mail_next_user
   (ctx=ctx@entry=0x55d248db57a8, error_r=error_r@entry=0x7ffdbc3f0778) at
   /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm-mail.c:506
          _data_stack_cur_id = 3
          cctx = 0x55d248db39b8
          input = {event_parent = 0x0, service = 0x55d20bcbd810 "doveadm",
   protocol = 0x0, username = 0x55d248db81a0 [1]"[email protected]", session_id
   = 0x0, session_id_prefix = 0x0, session_create_
   time = 0, local_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 =
   '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
   __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}, sco
   pe_id = 0}, remote_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 =
   '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
   __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}},
   scope_id = 0}, local_port = 0, remote_port = 0, local_name = 0x0,
   userdb_fields = 0x0, code_override_fields = 0x0, forward_fields = 0x0,
   set_instance = 0x0, flags_override_add = 0, flags_over
   ride_remove = 0, no_userdb_lookup = false, debug = false,
   end_client_tls_secured = false, autocreated = false, no_free_init_failure
   = false}
          error = 0x0
          ip = <optimized out>
          ret = <optimized out>
          dropping_privs = true
          cur_uid = 0
          cur_cwd = 0x55d248d86df8 "/"
          cur_ctx = 0x55d248dc2c80
          reason = 0x55d248df57f0
          __func__ = "doveadm_mail_next_user"
   #11 0x000055d20bc87525 in doveadm_mail_all_users (ctx=0x55d248db57a8,
   wildcard_user=0x55d20bcc015d "*") at
   /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm-mail.c:584
          _data_stack_cur_id = 2
          cctx = 0x55d248db39b8
          user_idx = 0
          ip = <optimized out>
          user = 0x55d248db81a0 [2]"[email protected]"
          error = 0x55d248d8e7d8 "\t\350\330H\322U"
          ret = 1
   #12 doveadm_mail_cmd_exec (ctx=0x55d248db57a8,
   wildcard_user=0x55d20bcc015d "*") at
   /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm-mail.c:721
          cctx = <optimized out>
          cli = <optimized out>
          ret = <optimized out>
          error = 0x55d248d8e7d8 "\t\350\330H\322U"
   #13 doveadm_cmd_ver2_to_mail_cmd_wrapper (cctx=<optimized out>) at
   /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm-mail.c:1039
          mctx = 0x55d248db57a8
          mail_cmd = {alloc = 0x55d20bc803f0 <cmd_force_resync_alloc>, name =
   0x55d20bcbe92d "force-resync", usage_args = 0x55d20bcc5008 "[-u <user>|-A]
   [-S <socket_path>] [-f] <mailbox mask>"}
          wildcard_user = 0x55d20bcc015d "*"
   #14 0x000055d20bc9ba77 in doveadm_cmdline_run (argc=<optimized out>,
   argv=0x55d248d8e7c8, cctx=cctx@entry=0x55d248db39b8) at
   /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm-cmd-parse.c:451
          prefix = <optimized out>
          pargv = {arr = {buffer = 0x55d248db4388, element_size = 112}, v =
   0x55d248db4388, v_modifiable = 0x55d248db4388}
          pargc = 8
          pool = 0x55d248db4350
          ptr_count = <optimized out>
          ptr = <optimized out>
          ptr_end = <optimized out>
          ptr_last_non_kv = <optimized out>
   #15 0x000055d20bc9bc2c in doveadm_cmdline_try_run
   (cmd_name=cmd_name@entry=0x55d248d8e7f9 "force-resync", argc=<optimized
   out>, argv=<optimized out>, cctx=cctx@entry=0x55d248db39b8) at /usr/s
   rc/debug/dovecot-2.4.1-4/src/doveadm/doveadm-cmd.c:160
          cmd = <optimized out>
   #16 0x000055d20bc74fde in main (argc=<optimized out>, argv=<optimized
   out>) at /usr/src/debug/dovecot-2.4.1-4/src/doveadm/doveadm.c:386
          service_flags = <optimized out>
          cmd_name = 0x55d248d8e7f9 "force-resync"
          i = <optimized out>
          quick_init = false
          c = <optimized out>
          longopts = {{name = 0x7f9e5dadb7a8 "help", has_arg = 0, flag = 0x0,
   val = 0}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
          help_requested = <optimized out>
          longopt = 0x0
          cctx = 0x55d248db39b8

   Akos

References

   Visible links
   1. mailto:[email protected]
   2. mailto:[email protected]
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to