changeset 8031:be8550f51b02 HEAD

fs quota: Don't crash if some mail storages are outside known mountpoints.
author Timo Sirainen <tss@iki.fi>
date Sun, 20 Jul 2008 21:48:26 +0300
parents 7fdb5f222d95
children fa2bd47fc59c
files src/plugins/quota/quota-fs.c
diffstat 1 files changed, 14 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/quota/quota-fs.c	Sun Jul 20 21:37:53 2008 +0300
+++ b/src/plugins/quota/quota-fs.c	Sun Jul 20 21:48:26 2008 +0300
@@ -232,7 +232,8 @@
 			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 @@
 
 	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 */