From d2f6fef3c887719a250c78c22cba723b2200df1b Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 13 Feb 2016 18:02:37 +0100 Subject: fix(cmd): safely read from stderr Fixes #383 --- git/cmd.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'git/cmd.py') diff --git a/git/cmd.py b/git/cmd.py index 3fa24fff..d2794c02 100644 --- a/git/cmd.py +++ b/git/cmd.py @@ -315,8 +315,16 @@ class Git(LazyMixin): :warn: may deadlock if output or error pipes are used and not handled separately. :raise GitCommandError: if the return status is not 0""" status = self.proc.wait() + + def read_all_from_possibly_closed_stream(stream): + try: + return stream.read() + except ValueError: + return '' + if status != 0: - raise GitCommandError(self.args, status, self.proc.stderr.read()) + errstr = read_all_from_possibly_closed_stream(self.proc.stderr.read) + raise GitCommandError(self.args, status, errstr) # END status handling return status # END auto interrupt -- cgit v1.2.1