mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
ad3f789bf9
Summary: `>>> open(file).write(data)` is a common patten for writing files across the tests. In py3 such statement return the number of bytes written in py2 the output is none. Let's make it None in py3 as well. Reviewed By: xavierd Differential Revision: D19666339 fbshipit-source-id: 5424287f85f34f3aef2d1596bb476d622464564a
51 lines
1.4 KiB
Perl
51 lines
1.4 KiB
Perl
#require py2
|
|
#chg-compatible
|
|
|
|
$ hg init empty-repo
|
|
$ cd empty-repo
|
|
|
|
Flags on revlog version 0 are rejected
|
|
|
|
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
|
|
... _ = fh.write('\x00\x01\x00\x00')
|
|
|
|
$ hg log
|
|
abort: repo is corrupted: 00changelog.i
|
|
[255]
|
|
|
|
Unknown flags on revlog version 1 are rejected
|
|
|
|
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
|
|
... _ = fh.write('\x00\x04\x00\x01')
|
|
|
|
$ hg log
|
|
abort: unknown flags (0x04) in version 1 revlog 00changelog.i!
|
|
[255]
|
|
|
|
Unknown version is rejected
|
|
|
|
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
|
|
... _ = fh.write('\x00\x00\x00\x02')
|
|
|
|
$ hg log
|
|
abort: unknown version (2) in revlog 00changelog.i!
|
|
[255]
|
|
|
|
$ cd ..
|
|
|
|
Test for CVE-2016-3630
|
|
|
|
$ hg init
|
|
|
|
>>> _ = open("a.i", "w").write(
|
|
... """eJxjYGZgZIAAYQYGxhgom+k/FMx8YKx9ZUaKSOyqo4cnuKb8mbqHV5cBCVTMWb1Cwqkhe4Gsg9AD
|
|
... Joa3dYtcYYYBAQ8Qr4OqZAYRICPTSr5WKd/42rV36d+8/VmrNpv7NP1jQAXrQE4BqQUARngwVA=="""
|
|
... .decode("base64").decode("zlib"))
|
|
|
|
$ hg debugindex a.i
|
|
rev offset length delta linkrev nodeid p1 p2
|
|
0 0 19 -1 2 99e0332bd498 000000000000 000000000000
|
|
1 19 12 0 3 6674f57a23d8 99e0332bd498 000000000000
|
|
$ hg debugdata a.i 1 2>&1 | egrep 'Error:.*decoded'
|
|
(mercurial\.\w+\.mpatch\.)?mpatchError: patch cannot be decoded (re)
|