Loading security/selinux/hooks.c +24 −30 Original line number Diff line number Diff line Loading @@ -1202,33 +1202,6 @@ static int selinux_parse_opts_str(char *options, kfree(rootcontext); return rc; } /* * string mount options parsing and call set the sbsec */ static int superblock_doinit(struct super_block *sb, void *data) { int rc = 0; char *options = data; struct security_mnt_opts opts; security_init_mnt_opts(&opts); if (!data) goto out; BUG_ON(sb->s_type->fs_flags & FS_BINARY_MOUNTDATA); rc = selinux_parse_opts_str(options, &opts); if (rc) goto out_err; out: rc = selinux_set_mnt_opts(sb, &opts, 0, NULL); out_err: security_free_mnt_opts(&opts); return rc; } static void selinux_write_opts(struct seq_file *m, struct security_mnt_opts *opts) Loading Loading @@ -2926,11 +2899,28 @@ static int selinux_sb_remount(struct super_block *sb, void *data) static int selinux_sb_kern_mount(struct super_block *sb, int flags, void *data) { char *options = data; const struct cred *cred = current_cred(); struct common_audit_data ad; int rc; int rc = 0; struct security_mnt_opts opts; security_init_mnt_opts(&opts); if (!data) goto out; BUG_ON(sb->s_type->fs_flags & FS_BINARY_MOUNTDATA); rc = selinux_parse_opts_str(options, &opts); if (rc) goto out_err; out: rc = selinux_set_mnt_opts(sb, &opts, 0, NULL); rc = superblock_doinit(sb, data); out_err: security_free_mnt_opts(&opts); if (rc) return rc; Loading Loading @@ -7194,7 +7184,11 @@ static __init int selinux_init(void) static void delayed_superblock_init(struct super_block *sb, void *unused) { superblock_doinit(sb, NULL); struct security_mnt_opts opts; security_init_mnt_opts(&opts); selinux_set_mnt_opts(sb, &opts, 0, NULL); security_free_mnt_opts(&opts); } void selinux_complete_init(void) Loading Loading
security/selinux/hooks.c +24 −30 Original line number Diff line number Diff line Loading @@ -1202,33 +1202,6 @@ static int selinux_parse_opts_str(char *options, kfree(rootcontext); return rc; } /* * string mount options parsing and call set the sbsec */ static int superblock_doinit(struct super_block *sb, void *data) { int rc = 0; char *options = data; struct security_mnt_opts opts; security_init_mnt_opts(&opts); if (!data) goto out; BUG_ON(sb->s_type->fs_flags & FS_BINARY_MOUNTDATA); rc = selinux_parse_opts_str(options, &opts); if (rc) goto out_err; out: rc = selinux_set_mnt_opts(sb, &opts, 0, NULL); out_err: security_free_mnt_opts(&opts); return rc; } static void selinux_write_opts(struct seq_file *m, struct security_mnt_opts *opts) Loading Loading @@ -2926,11 +2899,28 @@ static int selinux_sb_remount(struct super_block *sb, void *data) static int selinux_sb_kern_mount(struct super_block *sb, int flags, void *data) { char *options = data; const struct cred *cred = current_cred(); struct common_audit_data ad; int rc; int rc = 0; struct security_mnt_opts opts; security_init_mnt_opts(&opts); if (!data) goto out; BUG_ON(sb->s_type->fs_flags & FS_BINARY_MOUNTDATA); rc = selinux_parse_opts_str(options, &opts); if (rc) goto out_err; out: rc = selinux_set_mnt_opts(sb, &opts, 0, NULL); rc = superblock_doinit(sb, data); out_err: security_free_mnt_opts(&opts); if (rc) return rc; Loading Loading @@ -7194,7 +7184,11 @@ static __init int selinux_init(void) static void delayed_superblock_init(struct super_block *sb, void *unused) { superblock_doinit(sb, NULL); struct security_mnt_opts opts; security_init_mnt_opts(&opts); selinux_set_mnt_opts(sb, &opts, 0, NULL); security_free_mnt_opts(&opts); } void selinux_complete_init(void) Loading