static void post_init(char *unused_name, char **unused_argv) { /* * Drop privileges most of the time. */ set_eugid(var_owner_uid, var_owner_gid); /* * No case folding needed: the recipient address is case folded. */ virtual_mailbox_maps = maps_create(VAR_VIRT_MAILBOX_MAPS, var_virt_mailbox_maps, DICT_FLAG_LOCK | DICT_FLAG_PARANOID); virtual_uid_maps = maps_create(VAR_VIRT_UID_MAPS, var_virt_uid_maps, DICT_FLAG_LOCK | DICT_FLAG_PARANOID); virtual_gid_maps = maps_create(VAR_VIRT_GID_MAPS, var_virt_gid_maps, DICT_FLAG_LOCK | DICT_FLAG_PARANOID); virtual_mbox_lock_mask = mbox_lock_mask(var_virt_mailbox_lock); }
static void local_mask_init(void) { static const NAME_MASK file_mask[] = { "alias", EXPAND_TYPE_ALIAS, "forward", EXPAND_TYPE_FWD, "include", EXPAND_TYPE_INCL, 0, }; static const NAME_MASK command_mask[] = { "alias", EXPAND_TYPE_ALIAS, "forward", EXPAND_TYPE_FWD, "include", EXPAND_TYPE_INCL, 0, }; static const NAME_MASK deliver_mask[] = { "command", DELIVER_HDR_CMD, "file", DELIVER_HDR_FILE, "forward", DELIVER_HDR_FWD, 0, }; local_file_deliver_mask = name_mask(VAR_ALLOW_FILES, file_mask, var_allow_files); local_cmd_deliver_mask = name_mask(VAR_ALLOW_COMMANDS, command_mask, var_allow_commands); local_ext_prop_mask = ext_prop_mask(VAR_PROP_EXTENSION, var_prop_extension); local_deliver_hdr_mask = name_mask(VAR_DELIVER_HDR, deliver_mask, var_deliver_hdr); local_mbox_lock_mask = mbox_lock_mask(var_mailbox_lock); if (var_mailtool_compat) { msg_warn("%s: deprecated parameter, use \"%s = dotlock\" instead", VAR_MAILTOOL_COMPAT, VAR_MAILBOX_LOCK); local_mbox_lock_mask &= MBOX_DOT_LOCK; } if (local_mbox_lock_mask == 0) msg_fatal("parameter %s specifies no applicable mailbox locking method", VAR_MAILBOX_LOCK); }