sshpeer: more thorough shell quoting
This fixes an issue spotted by Jesse Hertz.
--- a/mercurial/sshpeer.py Mon Dec 29 15:59:56 2014 +0900
+++ b/mercurial/sshpeer.py Mon Dec 29 14:27:02 2014 -0600
@@ -20,6 +20,8 @@
self.release()
def _serverquote(s):
+ if not s:
+ return s
'''quote a string for the remote shell ... which we assume is sh'''
if re.match('[a-zA-Z0-9@%_+=:,./-]*$', s):
return s
@@ -45,7 +47,10 @@
sshcmd = self.ui.config("ui", "ssh", "ssh")
remotecmd = self.ui.config("ui", "remotecmd", "hg")
- args = util.sshargs(sshcmd, self.host, self.user, self.port)
+ args = util.sshargs(sshcmd,
+ _serverquote(self.host),
+ _serverquote(self.user),
+ _serverquote(self.port))
if create:
cmd = '%s %s %s' % (sshcmd, args,