Commit a0558fc3491c0494feb8472cf6c0119e43fd9484
Committed by
James Morris
1 parent
d508afb437
Exists in
master
and in
7 other branches
tomoyo: remove "undelete domain" command.
Since TOMOYO's policy management tools does not use the "undelete domain" command, we decided to remove that command. Signed-off-by: Kentaro Takeda <takedakn@nttdata.co.jp> Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: Toshiharu Harada <haradats@nttdata.co.jp> Signed-off-by: James Morris <jmorris@namei.org>
Showing 3 changed files with 5 additions and 100 deletions Side-by-side Diff
security/tomoyo/common.c
... | ... | @@ -1252,15 +1252,12 @@ |
1252 | 1252 | struct tomoyo_domain_info *domain = head->write_var1; |
1253 | 1253 | bool is_delete = false; |
1254 | 1254 | bool is_select = false; |
1255 | - bool is_undelete = false; | |
1256 | 1255 | unsigned int profile; |
1257 | 1256 | |
1258 | 1257 | if (tomoyo_str_starts(&data, TOMOYO_KEYWORD_DELETE)) |
1259 | 1258 | is_delete = true; |
1260 | 1259 | else if (tomoyo_str_starts(&data, TOMOYO_KEYWORD_SELECT)) |
1261 | 1260 | is_select = true; |
1262 | - else if (tomoyo_str_starts(&data, TOMOYO_KEYWORD_UNDELETE)) | |
1263 | - is_undelete = true; | |
1264 | 1261 | if (is_select && tomoyo_is_select_one(head, data)) |
1265 | 1262 | return 0; |
1266 | 1263 | /* Don't allow updating policies by non manager programs. */ |
... | ... | @@ -1274,9 +1271,7 @@ |
1274 | 1271 | down_read(&tomoyo_domain_list_lock); |
1275 | 1272 | domain = tomoyo_find_domain(data); |
1276 | 1273 | up_read(&tomoyo_domain_list_lock); |
1277 | - } else if (is_undelete) | |
1278 | - domain = tomoyo_undelete_domain(data); | |
1279 | - else | |
1274 | + } else | |
1280 | 1275 | domain = tomoyo_find_or_assign_new_domain(data, 0); |
1281 | 1276 | head->write_var1 = domain; |
1282 | 1277 | return 0; |
security/tomoyo/common.h
... | ... | @@ -88,10 +88,7 @@ |
88 | 88 | /* Name of this domain. Never NULL. */ |
89 | 89 | const struct tomoyo_path_info *domainname; |
90 | 90 | u8 profile; /* Profile number to use. */ |
91 | - u8 is_deleted; /* Delete flag. | |
92 | - 0 = active. | |
93 | - 1 = deleted but undeletable. | |
94 | - 255 = deleted and no longer undeletable. */ | |
91 | + bool is_deleted; /* Delete flag. */ | |
95 | 92 | bool quota_warned; /* Quota warnning flag. */ |
96 | 93 | /* DOMAIN_FLAGS_*. Use tomoyo_set_domain_flag() to modify. */ |
97 | 94 | u8 flags; |
... | ... | @@ -144,7 +141,6 @@ |
144 | 141 | #define TOMOYO_KEYWORD_NO_INITIALIZE_DOMAIN "no_initialize_domain " |
145 | 142 | #define TOMOYO_KEYWORD_NO_KEEP_DOMAIN "no_keep_domain " |
146 | 143 | #define TOMOYO_KEYWORD_SELECT "select " |
147 | -#define TOMOYO_KEYWORD_UNDELETE "undelete " | |
148 | 144 | #define TOMOYO_KEYWORD_USE_PROFILE "use_profile " |
149 | 145 | #define TOMOYO_KEYWORD_IGNORE_GLOBAL_ALLOW_READ "ignore_global_allow_read" |
150 | 146 | /* A domain definition starts with <kernel>. */ |
... | ... | @@ -267,8 +263,6 @@ |
267 | 263 | struct tomoyo_domain_info *tomoyo_find_or_assign_new_domain(const char * |
268 | 264 | domainname, |
269 | 265 | const u8 profile); |
270 | -/* Undelete a domain. */ | |
271 | -struct tomoyo_domain_info *tomoyo_undelete_domain(const char *domainname); | |
272 | 266 | /* Check mode for specified functionality. */ |
273 | 267 | unsigned int tomoyo_check_flags(const struct tomoyo_domain_info *domain, |
274 | 268 | const u8 index); |
security/tomoyo/domain.c
... | ... | @@ -551,10 +551,8 @@ |
551 | 551 | return tomoyo_update_alias_entry(data, cp, is_delete); |
552 | 552 | } |
553 | 553 | |
554 | -/* Domain create/delete/undelete handler. */ | |
554 | +/* Domain create/delete handler. */ | |
555 | 555 | |
556 | -/* #define TOMOYO_DEBUG_DOMAIN_UNDELETE */ | |
557 | - | |
558 | 556 | /** |
559 | 557 | * tomoyo_delete_domain - Delete a domain. |
560 | 558 | * |
561 | 559 | |
562 | 560 | |
... | ... | @@ -571,41 +569,15 @@ |
571 | 569 | tomoyo_fill_path_info(&name); |
572 | 570 | /***** EXCLUSIVE SECTION START *****/ |
573 | 571 | down_write(&tomoyo_domain_list_lock); |
574 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
575 | - printk(KERN_DEBUG "tomoyo_delete_domain %s\n", domainname); | |
576 | - list_for_each_entry(domain, &tomoyo_domain_list, list) { | |
577 | - if (tomoyo_pathcmp(domain->domainname, &name)) | |
578 | - continue; | |
579 | - printk(KERN_DEBUG "List: %p %u\n", domain, domain->is_deleted); | |
580 | - } | |
581 | -#endif | |
582 | 572 | /* Is there an active domain? */ |
583 | 573 | list_for_each_entry(domain, &tomoyo_domain_list, list) { |
584 | - struct tomoyo_domain_info *domain2; | |
585 | 574 | /* Never delete tomoyo_kernel_domain */ |
586 | 575 | if (domain == &tomoyo_kernel_domain) |
587 | 576 | continue; |
588 | 577 | if (domain->is_deleted || |
589 | 578 | tomoyo_pathcmp(domain->domainname, &name)) |
590 | 579 | continue; |
591 | - /* Mark already deleted domains as non undeletable. */ | |
592 | - list_for_each_entry(domain2, &tomoyo_domain_list, list) { | |
593 | - if (!domain2->is_deleted || | |
594 | - tomoyo_pathcmp(domain2->domainname, &name)) | |
595 | - continue; | |
596 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
597 | - if (domain2->is_deleted != 255) | |
598 | - printk(KERN_DEBUG | |
599 | - "Marked %p as non undeletable\n", | |
600 | - domain2); | |
601 | -#endif | |
602 | - domain2->is_deleted = 255; | |
603 | - } | |
604 | - /* Delete and mark active domain as undeletable. */ | |
605 | - domain->is_deleted = 1; | |
606 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
607 | - printk(KERN_DEBUG "Marked %p as undeletable\n", domain); | |
608 | -#endif | |
580 | + domain->is_deleted = true; | |
609 | 581 | break; |
610 | 582 | } |
611 | 583 | up_write(&tomoyo_domain_list_lock); |
... | ... | @@ -614,58 +586,6 @@ |
614 | 586 | } |
615 | 587 | |
616 | 588 | /** |
617 | - * tomoyo_undelete_domain - Undelete a domain. | |
618 | - * | |
619 | - * @domainname: The name of domain. | |
620 | - * | |
621 | - * Returns pointer to "struct tomoyo_domain_info" on success, NULL otherwise. | |
622 | - */ | |
623 | -struct tomoyo_domain_info *tomoyo_undelete_domain(const char *domainname) | |
624 | -{ | |
625 | - struct tomoyo_domain_info *domain; | |
626 | - struct tomoyo_domain_info *candidate_domain = NULL; | |
627 | - struct tomoyo_path_info name; | |
628 | - | |
629 | - name.name = domainname; | |
630 | - tomoyo_fill_path_info(&name); | |
631 | - /***** EXCLUSIVE SECTION START *****/ | |
632 | - down_write(&tomoyo_domain_list_lock); | |
633 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
634 | - printk(KERN_DEBUG "tomoyo_undelete_domain %s\n", domainname); | |
635 | - list_for_each_entry(domain, &tomoyo_domain_list, list) { | |
636 | - if (tomoyo_pathcmp(domain->domainname, &name)) | |
637 | - continue; | |
638 | - printk(KERN_DEBUG "List: %p %u\n", domain, domain->is_deleted); | |
639 | - } | |
640 | -#endif | |
641 | - list_for_each_entry(domain, &tomoyo_domain_list, list) { | |
642 | - if (tomoyo_pathcmp(&name, domain->domainname)) | |
643 | - continue; | |
644 | - if (!domain->is_deleted) { | |
645 | - /* This domain is active. I can't undelete. */ | |
646 | - candidate_domain = NULL; | |
647 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
648 | - printk(KERN_DEBUG "%p is active. I can't undelete.\n", | |
649 | - domain); | |
650 | -#endif | |
651 | - break; | |
652 | - } | |
653 | - /* Is this domain undeletable? */ | |
654 | - if (domain->is_deleted == 1) | |
655 | - candidate_domain = domain; | |
656 | - } | |
657 | - if (candidate_domain) { | |
658 | - candidate_domain->is_deleted = 0; | |
659 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
660 | - printk(KERN_DEBUG "%p was undeleted.\n", candidate_domain); | |
661 | -#endif | |
662 | - } | |
663 | - up_write(&tomoyo_domain_list_lock); | |
664 | - /***** EXCLUSIVE SECTION END *****/ | |
665 | - return candidate_domain; | |
666 | -} | |
667 | - | |
668 | -/** | |
669 | 589 | * tomoyo_find_or_assign_new_domain - Create a domain. |
670 | 590 | * |
671 | 591 | * @domainname: The name of domain. |
... | ... | @@ -711,10 +631,6 @@ |
711 | 631 | /***** CRITICAL SECTION END *****/ |
712 | 632 | if (flag) |
713 | 633 | continue; |
714 | -#ifdef TOMOYO_DEBUG_DOMAIN_UNDELETE | |
715 | - printk(KERN_DEBUG "Reusing %p %s\n", domain, | |
716 | - domain->domainname->name); | |
717 | -#endif | |
718 | 634 | list_for_each_entry(ptr, &domain->acl_info_list, list) { |
719 | 635 | ptr->type |= TOMOYO_ACL_DELETED; |
720 | 636 | } |
... | ... | @@ -722,7 +638,7 @@ |
722 | 638 | domain->profile = profile; |
723 | 639 | domain->quota_warned = false; |
724 | 640 | mb(); /* Avoid out-of-order execution. */ |
725 | - domain->is_deleted = 0; | |
641 | + domain->is_deleted = false; | |
726 | 642 | goto out; |
727 | 643 | } |
728 | 644 | /* No memory reusable. Create using new memory. */ |