Commit d7c8cf6c by James Tanner

Fixes #4958 Truncate printed stdout if it contains non-printable characters

parent 78ec7c73
...@@ -38,6 +38,7 @@ import ansible.inventory ...@@ -38,6 +38,7 @@ import ansible.inventory
from ansible import utils from ansible import utils
from ansible.utils import template from ansible.utils import template
from ansible.utils import check_conditional from ansible.utils import check_conditional
from ansible.utils import string_functions
from ansible import errors from ansible import errors
from ansible import module_common from ansible import module_common
import poller import poller
...@@ -742,6 +743,12 @@ class Runner(object): ...@@ -742,6 +743,12 @@ class Runner(object):
self.callbacks.on_unreachable(host, result.result) self.callbacks.on_unreachable(host, result.result)
else: else:
data = result.result data = result.result
# https://github.com/ansible/ansible/issues/4958
if "stdout" in data and sys.stdout.isatty():
if not string_functions.isprintable(data['stdout']):
data['stdout'] = ''
if 'item' in inject: if 'item' in inject:
result.result['item'] = inject['item'] result.result['item'] = inject['item']
......
def isprintable(instring):
#http://stackoverflow.com/a/3637294
import string
printset = set(string.printable)
isprintable = set(instring).issubset(printset)
return isprintable
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment