Blob Blame History Raw
Index: checkpolicy/policy_parse.y
===================================================================
RCS file: /nfshome/pal/CVS/selinux-usr/checkpolicy/policy_parse.y,v
retrieving revision 1.41
diff -u -p -r1.41 policy_parse.y
--- checkpolicy/policy_parse.y	15 Aug 2005 16:10:56 -0000	1.41
+++ checkpolicy/policy_parse.y	22 Aug 2005 17:49:36 -0000
@@ -2965,6 +2965,7 @@ static int define_validatetrans(constrai
 	ebitmap_t classmap;
 	constraint_expr_t *e;
 	int depth;
+	unsigned char useexpr = 1;
 
 	if (pass == 1) {
 		while ((id = queue_remove(id_queue))) 
@@ -3035,7 +3036,12 @@ static int define_validatetrans(constrai
 			return -1;
 		}
 		memset(node, 0, sizeof(constraint_node_t));
-		node->expr = expr;
+		if (useexpr) {
+			node->expr = expr;
+			useexpr = 0;
+		} else {
+			node->expr = constraint_expr_clone(expr);
+		}
 		node->permissions = 0;
 
 		node->next = cladatum->validatetrans;