[master 4/4] Don't crash while logging binary output.
dashea
installerbot-noreply at redhat.com
Mon Oct 19 20:17:02 UTC 2015
From: David Shea <dshea at redhat.com>
Also don't do the logging-specific string manipulations if the output is
not going to be logged.
---
pyanaconda/iutil.py | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
index 26fbb8b..5a327ba 100644
--- a/pyanaconda/iutil.py
+++ b/pyanaconda/iutil.py
@@ -279,23 +279,20 @@ def _run_program(argv, root='/', stdin=None, stdout=None, env_prune=None, log_ou
env_prune=env_prune)
(output_string, err_string) = proc.communicate()
- if binary_output:
- output_lines = [output_string]
- else:
+ if not binary_output:
output_string = output_string.decode("utf-8")
if output_string and output_string[-1] != "\n":
output_string = output_string + "\n"
- output_lines = output_string.splitlines(True)
if log_output:
with program_log_lock:
if binary_output:
# try to decode as utf-8 and replace all undecodable data by
# "safe" printable representations when logging binary output
- decoded_output_lines = output_lines.decode("utf-8", "replace")
+ decoded_output_lines = output_string.decode("utf-8", "replace")
else:
- # output_lines should already be a Unicode string
- decoded_output_lines = output_lines
+ # output_string should already be a Unicode string
+ decoded_output_lines = output_string.splitlines(True)
for line in decoded_output_lines:
program_log.info(line.strip())
--
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/9a568f98962c3802b9316d6fe8f5145eca1606b7
More information about the anaconda-patches
mailing list