# HG changeset patch # User Mads Kiilerich # Date 1298340170 -3600 # Node ID ab3f4ee48adc9e5321a0cd4b323d6b1b655900ff # Parent 053c042118bc71b640587c8f5920204830c1b786 changegroup: don't accept streams without proper termination Streams should be terminated with a zero size changegroup, and read should never be permitted to return less than requested. diff -r 053c042118bc -r ab3f4ee48adc mercurial/changegroup.py --- a/mercurial/changegroup.py Mon Feb 21 20:58:54 2011 -0300 +++ b/mercurial/changegroup.py Tue Feb 22 03:02:50 2011 +0100 @@ -12,8 +12,6 @@ def getchunk(source): """return the next chunk from changegroup 'source' as a string""" d = source.read(4) - if not d: - return "" l = struct.unpack(">l", d)[0] if l <= 4: return "" @@ -148,8 +146,6 @@ def chunklength(self): d = self.read(4) - if not d: - return 0 l = max(0, struct.unpack(">l", d)[0] - 4) if l and self.callback: self.callback()