From 4ce6645f08fffa194f76e5d4105bfb77b6c8cd14 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Fri, 3 Feb 2012 15:44:29 -0800 Subject: Makes sure killfilter doesn't raise ValueError * Fixes bug 926412 * Includes failing test Change-Id: Ie0105ff777575d6dd794ce5b5e08545fb54ecf8b --- nova/rootwrap/filters.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'nova/rootwrap') diff --git a/nova/rootwrap/filters.py b/nova/rootwrap/filters.py index faaeb11f7..98880194b 100755 --- a/nova/rootwrap/filters.py +++ b/nova/rootwrap/filters.py @@ -100,6 +100,8 @@ class KillFilter(CommandFilter): """ def match(self, userargs): + if userargs[0] != "kill": + return False args = list(userargs) if len(args) == 3: signal = args.pop(1) @@ -113,13 +115,12 @@ class KillFilter(CommandFilter): if '' not in self.args[0]: # No signal, but list doesn't include empty string return False - pid = int(args[1]) try: - command = os.readlink("/proc/%d/exe" % pid) + command = os.readlink("/proc/%d/exe" % int(args[1])) if command not in self.args[1]: # Affected executable not in accepted list return False - except: + except (ValueError, OSError): # Incorrect PID return False return True -- cgit