@@ -396,11 +396,6 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf,
396396
397397static struct dentry * ima_dir ;
398398static struct dentry * ima_symlink ;
399- static struct dentry * binary_runtime_measurements ;
400- static struct dentry * ascii_runtime_measurements ;
401- static struct dentry * runtime_measurements_count ;
402- static struct dentry * violations ;
403- static struct dentry * ima_policy ;
404399
405400enum ima_fs_flags {
406401 IMA_FS_BUSY ,
@@ -419,14 +414,7 @@ static const struct seq_operations ima_policy_seqops = {
419414
420415static void __init remove_securityfs_measurement_lists (struct dentry * * lists )
421416{
422- int i ;
423-
424- if (lists ) {
425- for (i = 0 ; i < securityfs_measurement_list_count ; i ++ )
426- securityfs_remove (lists [i ]);
427-
428- kfree (lists );
429- }
417+ kfree (lists );
430418}
431419
432420static int __init create_securityfs_measurement_lists (void )
@@ -533,8 +521,7 @@ static int ima_release_policy(struct inode *inode, struct file *file)
533521
534522 ima_update_policy ();
535523#if !defined(CONFIG_IMA_WRITE_POLICY ) && !defined(CONFIG_IMA_READ_POLICY )
536- securityfs_remove (ima_policy );
537- ima_policy = NULL ;
524+ securityfs_remove (file -> f_path .dentry );
538525#elif defined(CONFIG_IMA_WRITE_POLICY )
539526 clear_bit (IMA_FS_BUSY , & ima_fs_flags );
540527#elif defined(CONFIG_IMA_READ_POLICY )
@@ -553,6 +540,7 @@ static const struct file_operations ima_measure_policy_ops = {
553540
554541int __init ima_fs_init (void )
555542{
543+ struct dentry * dentry ;
556544 int ret ;
557545
558546 ascii_securityfs_measurement_lists = NULL ;
@@ -573,54 +561,45 @@ int __init ima_fs_init(void)
573561 if (ret != 0 )
574562 goto out ;
575563
576- binary_runtime_measurements =
577- securityfs_create_symlink ("binary_runtime_measurements" , ima_dir ,
564+ dentry = securityfs_create_symlink ("binary_runtime_measurements" , ima_dir ,
578565 "binary_runtime_measurements_sha1" , NULL );
579- if (IS_ERR (binary_runtime_measurements )) {
580- ret = PTR_ERR (binary_runtime_measurements );
566+ if (IS_ERR (dentry )) {
567+ ret = PTR_ERR (dentry );
581568 goto out ;
582569 }
583570
584- ascii_runtime_measurements =
585- securityfs_create_symlink ("ascii_runtime_measurements" , ima_dir ,
571+ dentry = securityfs_create_symlink ("ascii_runtime_measurements" , ima_dir ,
586572 "ascii_runtime_measurements_sha1" , NULL );
587- if (IS_ERR (ascii_runtime_measurements )) {
588- ret = PTR_ERR (ascii_runtime_measurements );
573+ if (IS_ERR (dentry )) {
574+ ret = PTR_ERR (dentry );
589575 goto out ;
590576 }
591577
592- runtime_measurements_count =
593- securityfs_create_file ("runtime_measurements_count" ,
578+ dentry = securityfs_create_file ("runtime_measurements_count" ,
594579 S_IRUSR | S_IRGRP , ima_dir , NULL ,
595580 & ima_measurements_count_ops );
596- if (IS_ERR (runtime_measurements_count )) {
597- ret = PTR_ERR (runtime_measurements_count );
581+ if (IS_ERR (dentry )) {
582+ ret = PTR_ERR (dentry );
598583 goto out ;
599584 }
600585
601- violations =
602- securityfs_create_file ("violations" , S_IRUSR | S_IRGRP ,
586+ dentry = securityfs_create_file ("violations" , S_IRUSR | S_IRGRP ,
603587 ima_dir , NULL , & ima_htable_violations_ops );
604- if (IS_ERR (violations )) {
605- ret = PTR_ERR (violations );
588+ if (IS_ERR (dentry )) {
589+ ret = PTR_ERR (dentry );
606590 goto out ;
607591 }
608592
609- ima_policy = securityfs_create_file ("policy" , POLICY_FILE_FLAGS ,
593+ dentry = securityfs_create_file ("policy" , POLICY_FILE_FLAGS ,
610594 ima_dir , NULL ,
611595 & ima_measure_policy_ops );
612- if (IS_ERR (ima_policy )) {
613- ret = PTR_ERR (ima_policy );
596+ if (IS_ERR (dentry )) {
597+ ret = PTR_ERR (dentry );
614598 goto out ;
615599 }
616600
617601 return 0 ;
618602out :
619- securityfs_remove (ima_policy );
620- securityfs_remove (violations );
621- securityfs_remove (runtime_measurements_count );
622- securityfs_remove (ascii_runtime_measurements );
623- securityfs_remove (binary_runtime_measurements );
624603 remove_securityfs_measurement_lists (ascii_securityfs_measurement_lists );
625604 remove_securityfs_measurement_lists (binary_securityfs_measurement_lists );
626605 securityfs_measurement_list_count = 0 ;
0 commit comments