From: Timo Sirainen Date: Sun, 20 Jul 2008 18:48:26 +0000 (+0300) Subject: fs quota: Don't crash if some mail storages are outside known mountpoints. X-Git-Tag: 1.2.alpha1~130 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b19feb85569a6ad96e60d8246723561331213b8a;p=thirdparty%2Fdovecot%2Fcore.git fs quota: Don't crash if some mail storages are outside known mountpoints. --HG-- branch : HEAD --- diff --git a/src/plugins/quota/quota-fs.c b/src/plugins/quota/quota-fs.c index acdb45d597..af8ff6ed51 100644 --- a/src/plugins/quota/quota-fs.c +++ b/src/plugins/quota/quota-fs.c @@ -232,7 +232,8 @@ static void fs_quota_add_missing_mounts(struct quota *quota) continue; mount = fs_quota_mountpoint_get(root->storage_mount_path); - fs_quota_mount_init(root, mount); + if (mount != NULL) + fs_quota_mount_init(root, mount); } } @@ -246,17 +247,19 @@ static void fs_quota_storage_added(struct quota *quota, dir = mail_storage_get_mailbox_path(storage, "", &is_file); mount = fs_quota_mountpoint_get(dir); - if (quota->debug) { - i_info("fs quota add storage dir = %s", dir); - i_info("fs quota block device = %s", mount->device_path); - i_info("fs quota mount point = %s", mount->mount_path); - } + if (mount != NULL) { + if (quota->debug) { + i_info("fs quota add storage dir = %s", dir); + i_info("fs quota block device = %s", mount->device_path); + i_info("fs quota mount point = %s", mount->mount_path); + } - root = fs_quota_root_find_mountpoint(quota, mount); - if (root != NULL && root->mount == NULL) - fs_quota_mount_init(root, mount); - else - fs_quota_mountpoint_free(mount); + root = fs_quota_root_find_mountpoint(quota, mount); + if (root != NULL && root->mount == NULL) + fs_quota_mount_init(root, mount); + else + fs_quota_mountpoint_free(mount); + } /* we would actually want to do this only once after all quota roots are created, but there's no way to do this right now */