[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