Module: check_mk
Branch: master
Commit: 1156e0bec725e3c7311ad15d1fb671d58134389c
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1156e0bec725e3…
Author: Óscar Nájera <on(a)mathias-kettner.de>
Date: Fri Oct 19 13:26:34 2018 +0200
Safe command execution in mail notification plugin
Change-Id: Id3befe8e1d28436364a5b4b20f24bc802eb673c0
---
cmk/notification_plugins/mail.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/cmk/notification_plugins/mail.py b/cmk/notification_plugins/mail.py
index 75002e2..a25a07b 100644
--- a/cmk/notification_plugins/mail.py
+++ b/cmk/notification_plugins/mail.py
@@ -34,6 +34,7 @@ import base64
import os
import socket
import sys
+import subprocess
import urllib
import urllib2
import json
@@ -630,17 +631,20 @@ def fetch_pnp_data(context, params):
path = "%s/share/pnp4nagios/htdocs/index.php" %
context['OMD_ROOT'].encode('utf-8')
php_save_path = "-d session.save_path=%s/tmp/php/session" %
context['OMD_ROOT'].encode(
'utf-8')
- env = 'REMOTE_USER="check-mk" SKIP_AUTHORIZATION=1'
+ env = {
+ 'REMOTE_USER': "check-mk",
+ "SKIP_AUTHORIZATION": 1,
+ }
except:
# Non-omd environment - use plugin argument 1
path = context.get('PARAMETER_1', '')
php_save_path = "" # Using default path
- env = 'REMOTE_USER="%s"' %
context['CONTACTNAME'].encode('utf-8')
+ env = {'REMOTE_USER':
context['CONTACTNAME'].encode('utf-8')}
if not os.path.exists(path):
raise GraphException('Unable to locate pnp4nagios index.php (%s)' %
path)
- return os.popen('%s php %s %s "%s"' % (env, php_save_path, path,
params)).read()
+ return subprocess.check_output(["php", php_save_path, path, params],
env=env)
def fetch_num_sources(context):
@@ -739,7 +743,7 @@ def get_omd_config(key):
def get_apache_port():
port = get_omd_config("CONFIG_APACHE_TCP_PORT")
- if port == None:
+ if port is None:
return 80
return int(port)