aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2021-04-15 19:42:46 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-04-15 19:42:46 +0000
commitbde9d1a6b6f54b27e2404b7295365202ef061c7a (patch)
tree9725a7a3307e1cf5d42ca41233d74ec81a6afa03
parent24b979b5d9e6e5cd16467080bb6b6af2809cd0e4 (diff)
parentbfa656d5880fc887fd5eba0d2fbabb1bd8faceb8 (diff)
downloadrepohooks-bde9d1a6b6f54b27e2404b7295365202ef061c7a.tar.gz
utils: run: fix file leakage with bad execs am: bfa656d588
Original change: https://android-review.googlesource.com/c/platform/tools/repohooks/+/1675673 Change-Id: I3c43b2c82244555e4f3c2e389fc253beded24c13
-rw-r--r--rh/utils.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/rh/utils.py b/rh/utils.py
index 4d17bb8..96512ed 100644
--- a/rh/utils.py
+++ b/rh/utils.py
@@ -416,6 +416,12 @@ def run(cmd, redirect_stdout=False, redirect_stderr=False, cwd=None, input=None,
stdout=ensure_text(result.stdout),
stderr=ensure_text(result.stderr))
except OSError as e:
+ # Avoid leaking tempfiles.
+ if popen_stdout is not None:
+ popen_stdout.close()
+ if popen_stderr is not None:
+ popen_stderr.close()
+
estr = str(e)
if e.errno == errno.EACCES:
estr += '; does the program need `chmod a+x`?'