]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
namespace: split out calls to normalize mount entry list into new function
authorLennart Poettering <lennart@poettering.net>
Wed, 4 Apr 2018 09:03:21 +0000 (11:03 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 18 Apr 2018 12:15:48 +0000 (14:15 +0200)
src/core/namespace.c

index 0cce2b4584573a9528f09dd8e3931fa289acc5c9..ec6b0a5ae7435d6628494191c7ade5143895da3f 100644 (file)
@@ -1066,6 +1066,18 @@ static unsigned namespace_calculate_mounts(
                 (namespace_info_mount_apivfs(root_directory, ns_info) ? ELEMENTSOF(apivfs_table) : 0);
 }
 
+static void normalize_mounts(const char *root_directory, MountEntry *mounts, unsigned *n_mounts) {
+        assert(n_mounts);
+        assert(mounts || *n_mounts == 0);
+
+        qsort_safe(mounts, *n_mounts, sizeof(MountEntry), mount_path_compare);
+
+        drop_duplicates(mounts, n_mounts);
+        drop_outside_root(root_directory, mounts, n_mounts);
+        drop_inaccessible(mounts, n_mounts);
+        drop_nop(mounts, n_mounts);
+}
+
 int setup_namespace(
                 const char* root_directory,
                 const char* root_image,
@@ -1250,12 +1262,7 @@ int setup_namespace(
                 if (r < 0)
                         goto finish;
 
-                qsort(mounts, n_mounts, sizeof(MountEntry), mount_path_compare);
-
-                drop_duplicates(mounts, &n_mounts);
-                drop_outside_root(root, mounts, &n_mounts);
-                drop_inaccessible(mounts, &n_mounts);
-                drop_nop(mounts, &n_mounts);
+                normalize_mounts(root_directory, mounts, &n_mounts);
         }
 
         if (unshare(CLONE_NEWNS) < 0) {