[apparmor] [PATCH 08/10] From 69da7ad9b8007d33bbf4ffe4474f03e81e13eaa6 Mon Sep 17 00:00:00 2001 From: John Johansen <john.johansen at canonical.com> Date: Sat, 3 Nov 2012 08:19:52 -0700 Subject: [PATCH 08/10] remove support for change_hat 1.4

John Johansen john.johansen at canonical.com
Mon Jul 22 05:32:51 UTC 2013


change_hat 1.4 was an experiement is more directly controlling change_hat
by adding hat rulles to the profile. It has not been used since the
original experiment (4 years).  So remove it


Signed-off-by: John Johansen <john.johansen at canonical.com>
---
 parser/parser_policy.c | 68 --------------------------------------------------
 1 file changed, 68 deletions(-)

diff --git a/parser/parser_policy.c b/parser/parser_policy.c
index f147be7..76a65c8 100644
--- a/parser/parser_policy.c
+++ b/parser/parser_policy.c
@@ -394,28 +394,6 @@ static void __add_hat_rules_parent(const void *nodep, const VISIT value,
 	if ((*t)->local)
 		return;
 
-	/* add rule to grant permission to change_hat
-	 * An opensuse 11.0, AA 2.3 requirement,
-	 * rules are added to the parent of the hat
-	 */
-	if ((flag_changehat_version == FLAG_CHANGEHAT_1_4) &&
-	    (*t)->parent) {
-		char *buffer = (char *) malloc(strlen((*t)->name) + 1);
-		if (!buffer) {
-			PERROR("Memory allocation error\n");
-			exit(1);
-		}
-
-		strcpy(buffer, (*t)->name);
-
-		entry = new_entry(NULL, buffer, AA_CHANGE_HAT, NULL);
-		if (!entry) {
-			PERROR("Memory allocation error\n");
-			exit(1);
-		}
-		add_entry_to_policy((*t)->parent, entry);
-	}
-
 	entry = new_entry(NULL, strdup(CHANGEHAT_PATH), AA_MAY_WRITE, NULL);
 	if (!entry) {
 		PERROR(_("ERROR adding hat access rule for profile %s\n"),
@@ -427,56 +405,10 @@ static void __add_hat_rules_parent(const void *nodep, const VISIT value,
 	twalk((*t)->hat_table, __add_hat_rules_parent);
 }
 
-/* Deprecated: used to support changehat rules of AppArmor 2.3
- * add the same hat rules to the hats as the parent so that hats can
- * change to sibling hats
- */
-static void __add_hat_rules_hats(const void *nodep, const VISIT value,
-				 const int __unused depth)
-{
-	struct codomain **t = (struct codomain **) nodep;
-
-	if (value == preorder || value == endorder)
-		return;
-
-	/* don't add hat rules if a parent profile with no hats */
-	if (!(*t)->hat_table && !(*t)->parent)
-		return;
-
-	/* don't add hat rules for local_profiles */
-	if ((*t)->local)
-		return;
-
-	/* hat */
-	if ((*t)->parent) {
-		struct cod_entry *entry, *new_ent;
-		list_for_each((*t)->parent->entries, entry) {
-			if (entry->mode & AA_CHANGE_HAT) {
-				char *buffer = strdup(entry->name);
-				if (!buffer) {
-					PERROR("Memory allocation error\n");
-					exit(1);
-				}
-				new_ent = new_entry(NULL, buffer,
-						    AA_CHANGE_HAT, NULL);
-				if (!entry) {
-					PERROR("Memory allocation error\n");
-					exit(1);
-				}
-				add_entry_to_policy((*t), new_ent);
-			}
-		}
-         }
-         twalk((*t)->hat_table, __add_hat_rules_hats);
-}
-
 static int add_hat_rules(void)
 {
 	twalk(policy_list, __add_hat_rules_parent);
 
-	/* support hat rules of AppArmor 2.3 in opensuse 11.0 */
-	if (flag_changehat_version == FLAG_CHANGEHAT_1_4)
-		twalk(policy_list, __add_hat_rules_hats);
 	return 0;
 }
 
-- 
1.8.1.2




More information about the AppArmor mailing list