From b26f7e2012be9c0ad6f192bc50b16df4b938536b Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Fri, 19 Oct 2012 10:28:12 -0400 Subject: handle malformed ACL tags more elegantly --- src/lib/Bcfg2/Client/Tools/POSIX/base.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/lib/Bcfg2/Client/Tools/POSIX/base.py') diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/base.py b/src/lib/Bcfg2/Client/Tools/POSIX/base.py index 5e851261b..35dc57612 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/base.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/base.py @@ -334,7 +334,9 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): representing the permissions entailed by it. representations can either be a single octal digit, a string of up to three 'r', 'w', 'x', or '-' characters, or a posix1e.Permset object""" - if hasattr(perms, 'test'): + if perms is None: + return 0 + elif hasattr(perms, 'test'): # Permset object return sum([p for p in ACL_MAP.values() if perms.test(p)]) @@ -545,6 +547,10 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): self.logger.error("POSIX: Unknown ACL scope %s" % acl.get("scope")) continue + if acl.get('perms') is None: + self.logger.error("POSIX: No permissions set for ACL: %s" % + Bcfg2.Client.XML.tostring(acl)) + continue wanted[(acl.get("type"), scope, acl.get(acl.get("scope")))] = \ self._norm_acl_perms(acl.get('perms')) return wanted -- cgit v1.2.3-1-g7c22