comparison mercurial/streamclone.py @ 35803:3ad3aaeb1134 stable

streamclone: use readexactly when reading stream v2 Yuya Nishihara pointed out that it is safer.
author Boris Feld <boris.feld@octobus.net>
date Wed, 24 Jan 2018 21:44:31 +0100
parents bbc07357b567
children 2d3e486d09d0
comparison
equal deleted inserted replaced
35802:bbc07357b567 35803:3ad3aaeb1134
592 with repo.transaction('clone'): 592 with repo.transaction('clone'):
593 ctxs = (vfs.backgroundclosing(repo.ui) 593 ctxs = (vfs.backgroundclosing(repo.ui)
594 for vfs in vfsmap.values()) 594 for vfs in vfsmap.values())
595 with nested(*ctxs): 595 with nested(*ctxs):
596 for i in range(filecount): 596 for i in range(filecount):
597 src = fp.read(1) 597 src = util.readexactly(fp, 1)
598 vfs = vfsmap[src] 598 vfs = vfsmap[src]
599 namelen = util.uvarintdecodestream(fp) 599 namelen = util.uvarintdecodestream(fp)
600 datalen = util.uvarintdecodestream(fp) 600 datalen = util.uvarintdecodestream(fp)
601 601
602 name = fp.read(namelen) 602 name = util.readexactly(fp, namelen)
603 603
604 if repo.ui.debugflag: 604 if repo.ui.debugflag:
605 repo.ui.debug('adding [%s] %s (%s)\n' % 605 repo.ui.debug('adding [%s] %s (%s)\n' %
606 (src, name, util.bytecount(datalen))) 606 (src, name, util.bytecount(datalen)))
607 607