From 9100f7fadd6cf67cb37421247c6cc3d2357b4f49 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 11 Sep 2019 03:58:36 -0400 Subject: [PATCH] repo: decode/encode all the subprocess streams We use subprocess a lot in the wrapper, but we don't always read or write the streams directly. When we do, make sure we convert to/from bytes before trying to use the content. Change-Id: I318bcc8e7427998348e359f60c3b49e151ffbdae Reported-by: Michael Scott Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/236612 Reviewed-by: Michael Scott Reviewed-by: David Pursehouse Tested-by: Michael Scott --- repo | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/repo b/repo index e737995..0888e44 100755 --- a/repo +++ b/repo @@ -505,7 +505,7 @@ def SetupGnuPG(quiet): print(file=sys.stderr) return False - proc.stdin.write(MAINTAINER_KEYS) + proc.stdin.write(MAINTAINER_KEYS.encode('utf-8')) proc.stdin.close() if proc.wait() != 0: @@ -584,6 +584,7 @@ def _DownloadBundle(url, local, quiet): cwd=local, stdout=subprocess.PIPE) for line in proc.stdout: + line = line.decode('utf-8') m = re.compile(r'^url\.(.*)\.insteadof (.*)$').match(line) if m: new_url = m.group(1) @@ -676,7 +677,7 @@ def _Verify(cwd, branch, quiet): stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd) - cur = proc.stdout.read().strip() + cur = proc.stdout.read().strip().decode('utf-8') proc.stdout.close() proc.stderr.read() @@ -708,10 +709,10 @@ def _Verify(cwd, branch, quiet): stderr=subprocess.PIPE, cwd=cwd, env=env) - out = proc.stdout.read() + out = proc.stdout.read().decode('utf-8') proc.stdout.close() - err = proc.stderr.read() + err = proc.stderr.read().decode('utf-8') proc.stderr.close() if proc.wait() != 0: @@ -861,7 +862,7 @@ def _SetDefaultsTo(gitdir): 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - REPO_REV = proc.stdout.read().strip() + REPO_REV = proc.stdout.read().strip().decode('utf-8') proc.stdout.close() proc.stderr.read()