From eefe359d6b0d29b5ead94c560c7a6475235899e2 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Fri, 9 Sep 2016 08:30:37 -0500 Subject: [PATCH] Don't use the shell to catch output, catch output in python. Fixes #17137 (#17449) --- lib/ansible/cli/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/ansible/cli/__init__.py b/lib/ansible/cli/__init__.py index 3176d9c956..48def42ba9 100644 --- a/lib/ansible/cli/__init__.py +++ b/lib/ansible/cli/__init__.py @@ -479,10 +479,13 @@ class CLI(object): display.display(text) else: self.pager_pipe(text, os.environ['PAGER']) - elif subprocess.call('(less --version) &> /dev/null', shell = True) == 0: - self.pager_pipe(text, 'less') else: - display.display(text) + p = subprocess.Popen('less --version', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p.communicate() + if p.returncode == 0: + self.pager_pipe(text, 'less') + else: + display.display(text) @staticmethod def pager_pipe(text, cmd):