Mercurial > public > mercurial-scm > hg-stable
diff mercurial/ui.py @ 30814:b96c57c1f860
ui: check EOF of getpass() response read from command-server channel
readline() returns '' only when EOF is encountered, in which case, Python's
getpass() raises EOFError. We should do the same to abort the session as
"response expected."
This bug was reported to
https://bitbucket.org/tortoisehg/thg/issues/4659/
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 14 Jan 2017 20:31:35 +0900 |
parents | 16b5df5792a8 |
children | da5fa0f13a41 |
line wrap: on
line diff
--- a/mercurial/ui.py Fri Jan 13 23:21:10 2017 -0800 +++ b/mercurial/ui.py Sat Jan 14 20:31:35 2017 +0900 @@ -972,7 +972,10 @@ # disable getpass() only if explicitly specified. it's still valid # to interact with tty even if fin is not a tty. if self.configbool('ui', 'nontty'): - return self.fin.readline().rstrip('\n') + l = self.fin.readline() + if not l: + raise EOFError + return l.rstrip('\n') else: return getpass.getpass('') except EOFError: