[selinux-policy: 1412/3172] make dupe interface and templates a fatal error.

Daniel J Walsh dwalsh at fedoraproject.org
Thu Oct 7 21:07:27 UTC 2010


commit 5706facdf2290a6ce11a70624b062b543a63fab1
Author: Chris PeBenito <cpebenito at tresys.com>
Date:   Tue May 2 14:34:32 2006 +0000

    make dupe interface and templates a fatal error.

 refpolicy/Changelog                          |    1 +
 refpolicy/Rules.modular                      |    4 +++-
 refpolicy/Rules.monolithic                   |    4 +++-
 refpolicy/policy/support/loadable_module.spt |    4 ++--
 4 files changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/refpolicy/Changelog b/refpolicy/Changelog
index cdf13c2..eb8fe18 100644
--- a/refpolicy/Changelog
+++ b/refpolicy/Changelog
@@ -1,3 +1,4 @@
+- Make duplicate template and interface declarations a fatal error.
 - Patch to stabilize modules.conf `make conf` output, from Erich Schubert.
 - Move xconsole_device_t from devices to xserver since it is
   not actually a device, it is a named pipe.
diff --git a/refpolicy/Rules.modular b/refpolicy/Rules.modular
index 92df08d..7fd21a8 100644
--- a/refpolicy/Rules.modular
+++ b/refpolicy/Rules.modular
@@ -142,8 +142,10 @@ ifeq ($(ALL_INTERFACES),)
 	$(error No enabled modules! $(notdir $(MOD_CONF)) may need to be generated by using "make conf")
 endif
 	@test -d $(TMPDIR) || mkdir -p $(TMPDIR)
+	@echo "ifdef(\`__if_error',\`m4exit(1)')" > $(TMPDIR)/iferror.m4
 	@echo "divert(-1)" > $@
-	$(verbose) $(M4) $^ | $(SED) -e s/dollarsstar/\$$\*/g >> $@
+	$(verbose) $(M4) $^ $(TMPDIR)/iferror.m4 >> $(TMPDIR)/$(@F).tmp
+	$(verbose) $(SED) -e s/dollarsstar/\$$\*/g $(TMPDIR)/$(@F).tmp >> $@
 	@echo "divert" >> $@
 
 $(TMPDIR)/rolemap.conf: M4PARAM += -D self_contained_policy
diff --git a/refpolicy/Rules.monolithic b/refpolicy/Rules.monolithic
index 89b2d1d..af56129 100644
--- a/refpolicy/Rules.monolithic
+++ b/refpolicy/Rules.monolithic
@@ -123,8 +123,10 @@ ifeq ($(ALL_INTERFACES),)
 	$(error No enabled modules! $(notdir $(MOD_CONF)) may need to be generated by using "make conf")
 endif
 	@test -d $(TMPDIR) || mkdir -p $(TMPDIR)
+	@echo "ifdef(\`__if_error',\`m4exit(1)')" > $(TMPDIR)/iferror.m4
 	@echo "divert(-1)" > $@
-	$(verbose) $(M4) $^ | $(SED) -e s/dollarsstar/\$$\*/g >> $@
+	$(verbose) $(M4) $^ $(TMPDIR)/iferror.m4 >> $(TMPDIR)/$(@F).tmp
+	$(verbose) $(SED) -e s/dollarsstar/\$$\*/g $(TMPDIR)/$(@F).tmp >> $@
 	@echo "divert" >> $@
 
 $(TMPDIR)/rolemap.conf: $(ROLEMAP)
diff --git a/refpolicy/policy/support/loadable_module.spt b/refpolicy/policy/support/loadable_module.spt
index efc9f6d..b9550f1 100644
--- a/refpolicy/policy/support/loadable_module.spt
+++ b/refpolicy/policy/support/loadable_module.spt
@@ -50,7 +50,7 @@ define(`policy_m4_comment',`
 # template(name,rules)
 #
 define(`template',` dnl
-	ifdef(`$1',`errprint(__file__:__line__`: duplicate definition of $1(). Original definition on '$1. __endline__)',`define(`$1',__line__)') dnl
+	ifdef(`$1',`errprint(__file__:__line__`: duplicate definition of $1(). Original definition on '$1. __endline__) define(`__if_error')',`define(`$1',__line__)') dnl
 	`define(`$1',` dnl
 	define(`policy_temp',incr(policy_call_depth)) dnl
 	pushdef(`policy_call_depth',policy_temp) dnl
@@ -71,7 +71,7 @@ define(`template',` dnl
 # interface(name,rules)
 #
 define(`interface',` dnl
-	ifdef(`$1',`errprint(__file__:__line__`: duplicate definition of $1(). Original definition on '$1. __endline__)',`define(`$1',__line__)') dnl
+	ifdef(`$1',`errprint(__file__:__line__`: duplicate definition of $1(). Original definition on '$1. __endline__) define(`__if_error')',`define(`$1',__line__)') dnl
 	`define(`$1',` dnl
 	define(`policy_temp',incr(policy_call_depth)) dnl
 	pushdef(`policy_call_depth',policy_temp) dnl


More information about the scm-commits mailing list