30 lines
906 B
Diff
30 lines
906 B
Diff
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;
|