diff --git a/attic/remote.py b/attic/remote.py index f2a0aed06..f21d3cbc2 100644 --- a/attic/remote.py +++ b/attic/remote.py @@ -44,7 +44,10 @@ class RepositoryServer(object): if not data: return unpacker.feed(data) - for type, msgid, method, args in unpacker: + for unpacked in unpacker: + if not (isinstance(unpacked, tuple) and len(unpacked) == 4): + raise Exception("Unexpected RPC data format.") + type, msgid, method, args = unpacked method = method.decode('ascii') try: try: @@ -172,7 +175,10 @@ class RemoteRepository(object): if not data: raise ConnectionClosed() self.unpacker.feed(data) - for type, msgid, error, res in self.unpacker: + for unpacked in self.unpacker: + if not (isinstance(unpacked, tuple) and len(unpacked) == 4): + raise Exception("Unexpected RPC data format.") + type, msgid, error, res = unpacked if msgid in self.ignore_responses: self.ignore_responses.remove(msgid) else: @@ -312,4 +318,4 @@ class RepositoryCache: def cache_if_remote(repository): if isinstance(repository, RemoteRepository): return RepositoryCache(repository) - return repository \ No newline at end of file + return repository