subrepo: open files in 'rb' mode to read exact data in (issue3926)

Before this patch, "subrepo._calcfilehash()" opens files by "open()"
without any mode specification. This implies "text mode" on Windows.

When target file contains '\x00' byte, "read()" in "text mode" reads
file contents in without data after '\x00'.

This causes invalid SHA1 hash calculation in "subrepo._calcfilehash()".

This patch opens files in 'rb' mode to read exact data in.
This commit is contained in:
FUJIWARA Katsunori 2013-05-09 21:09:58 +09:00
parent 36f0d7039a
commit 66873eefc0

View File

@ -31,7 +31,7 @@ def _getstorehashcachename(remotepath):
def _calcfilehash(filename):
data = ''
if os.path.exists(filename):
fd = open(filename)
fd = open(filename, 'rb')
data = fd.read()
fd.close()
return util.sha1(data).hexdigest()