summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorAdrian Likins <alikins@redhat.com>2007-09-25 14:20:17 -0400
committerAdrian Likins <alikins@redhat.com>2007-09-25 14:20:17 -0400
commit6d5746d617385978fb316ac90cc05eaa0f39b8b9 (patch)
tree19bbf6d6149b448f369f1a9efa5e8887945a0a9b /modules
parent35c3766557793329b9e1ea31b18ea66830367845 (diff)
downloadthird_party-func-6d5746d617385978fb316ac90cc05eaa0f39b8b9.tar.gz
third_party-func-6d5746d617385978fb316ac90cc05eaa0f39b8b9.tar.xz
third_party-func-6d5746d617385978fb316ac90cc05eaa0f39b8b9.zip
catch some potentially bad args to the process.kill method
We don't want empty args to end up killing the calling process, aka, funcd, so we filter those out.
Diffstat (limited to 'modules')
-rwxr-xr-xmodules/process.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/modules/process.py b/modules/process.py
index 2c40f9b..78e5aea 100755
--- a/modules/process.py
+++ b/modules/process.py
@@ -16,6 +16,7 @@
# other modules
import sub_process
+import codes
# our modules
from modules import func_module
@@ -54,8 +55,16 @@ class ProcessModule(func_module.FuncModule):
return results
- def kill(self,pid,level=""):
- rc = sub_process.call(["/bin/kill", pid, level], executable="/bin/kill", shell=False)
+ def kill(self,pid,signal="TERM"):
+ if pid == "0":
+ raise codes.FuncException("Killing pid group 0 not permitted")
+ if signal == "":
+ # this is default /bin/kill behaviour, it claims, but enfore it anyway
+ signal = "-TERM"
+ if signal[0] != "-":
+ signal = "-%s" % signal
+ rc = sub_process.call(["/bin/kill",signal, pid], executable="/bin/kill", shell=False)
+ print rc
return rc
def pkill(self,name,level=""):