changeset 14707:964a72038bb0 stable

cmdserver, runcommand: properly handle the client sending no arguments No real reason for a client to do this, but still possible. Previously if the client sent no arguments, a list with an empty string [''] would be used as the arguments to dispatch, which would cause hg to complain about an ambiguous command. Instead, we simply check for no arguments and use an empty list instead (which is equivalent to invoking hg with no args on the command line).
author Idan Kamara <idankk86@gmail.com>
date Tue, 21 Jun 2011 15:38:10 +0300
parents 5fd5dd9a610a
children 8083f4d00bd1
files mercurial/commandserver.py
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commandserver.py	Tue Jun 21 15:13:39 2011 +0300
+++ b/mercurial/commandserver.py	Tue Jun 21 15:38:10 2011 +0300
@@ -171,7 +171,10 @@
         and writes the return code to the result channel """
 
         length = struct.unpack('>I', self._read(4))[0]
-        args = self._read(length).split('\0')
+        if not length:
+            args = []
+        else:
+            args = self._read(length).split('\0')
 
         # copy the ui so changes to it don't persist between requests
         req = dispatch.request(args, self.ui.copy(), self.repo, self.cin,