binfmt_misc: enable sandboxed mounts
[linux-2.6-block.git] / kernel / user.c
index d667debeafd6097221455acf6844413adc8e120f..03cedc366dc9e1a3733b1e05a0f58356dbaee725 100644 (file)
 #include <linux/interrupt.h>
 #include <linux/export.h>
 #include <linux/user_namespace.h>
+#include <linux/binfmts.h>
 #include <linux/proc_ns.h>
 
+#if IS_ENABLED(CONFIG_BINFMT_MISC)
+struct binfmt_misc init_binfmt_misc = {
+       .entries = LIST_HEAD_INIT(init_binfmt_misc.entries),
+       .enabled = true,
+       .entries_lock = __RW_LOCK_UNLOCKED(init_binfmt_misc.entries_lock),
+};
+EXPORT_SYMBOL_GPL(init_binfmt_misc);
+#endif
+
 /*
  * userns count is 1 for root user, 1 for init_uts_ns,
  * and 1 for... ?
@@ -67,6 +77,9 @@ struct user_namespace init_user_ns = {
        .keyring_name_list = LIST_HEAD_INIT(init_user_ns.keyring_name_list),
        .keyring_sem = __RWSEM_INITIALIZER(init_user_ns.keyring_sem),
 #endif
+#if IS_ENABLED(CONFIG_BINFMT_MISC)
+       .binfmt_misc = &init_binfmt_misc,
+#endif
 };
 EXPORT_SYMBOL_GPL(init_user_ns);