2019-12-10 02:24:31 +03:00
|
|
|
#chg-compatible
|
|
|
|
|
2017-05-20 06:01:35 +03:00
|
|
|
$ hg init empty-repo
|
|
|
|
$ cd empty-repo
|
2020-07-31 06:24:12 +03:00
|
|
|
$ setconfig experimental.rust-commits=false
|
2017-05-20 06:01:35 +03:00
|
|
|
|
|
|
|
Flags on revlog version 0 are rejected
|
|
|
|
|
|
|
|
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
|
2020-04-14 00:52:40 +03:00
|
|
|
... _ = fh.write(b'\x00\x01\x00\x00')
|
2017-05-20 06:01:35 +03:00
|
|
|
|
|
|
|
$ hg log
|
2019-06-13 00:35:58 +03:00
|
|
|
abort: repo is corrupted: 00changelog.i
|
2017-05-20 06:01:35 +03:00
|
|
|
[255]
|
|
|
|
|
|
|
|
Unknown flags on revlog version 1 are rejected
|
|
|
|
|
|
|
|
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
|
2020-04-14 00:52:40 +03:00
|
|
|
... _ = fh.write(b'\x00\x04\x00\x01')
|
2017-05-20 06:01:35 +03:00
|
|
|
|
|
|
|
$ hg log
|
2017-05-20 06:10:50 +03:00
|
|
|
abort: unknown flags (0x04) in version 1 revlog 00changelog.i!
|
2017-05-20 06:01:35 +03:00
|
|
|
[255]
|
|
|
|
|
|
|
|
Unknown version is rejected
|
|
|
|
|
|
|
|
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
|
2020-04-14 00:52:40 +03:00
|
|
|
... _ = fh.write(b'\x00\x00\x00\x02')
|
2017-05-20 06:01:35 +03:00
|
|
|
|
|
|
|
$ hg log
|
2017-05-20 06:10:50 +03:00
|
|
|
abort: unknown version (2) in revlog 00changelog.i!
|
2017-05-20 06:01:35 +03:00
|
|
|
[255]
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
|
2016-03-17 03:29:29 +03:00
|
|
|
Test for CVE-2016-3630
|
|
|
|
|
|
|
|
$ hg init
|
|
|
|
|
2020-04-14 00:52:40 +03:00
|
|
|
>>> import codecs
|
|
|
|
>>> data = b"""eJxjYGZgZIAAYQYGxhgom+k/FMx8YKx9ZUaKSOyqo4cnuKb8mbqHV5cBCVTMWb1Cwqkhe4Gsg9AD
|
2016-03-17 03:29:29 +03:00
|
|
|
... Joa3dYtcYYYBAQ8Qr4OqZAYRICPTSr5WKd/42rV36d+8/VmrNpv7NP1jQAXrQE4BqQUARngwVA=="""
|
2020-04-14 00:52:40 +03:00
|
|
|
>>> data = codecs.decode(codecs.decode(data, "base64"), "zlib")
|
|
|
|
>>> _ = open("a.i", "wb").write(data)
|
2016-03-17 03:29:29 +03:00
|
|
|
|
|
|
|
$ 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
|
2016-03-31 05:05:28 +03:00
|
|
|
$ hg debugdata a.i 1 2>&1 | egrep 'Error:.*decoded'
|
2016-08-13 06:18:58 +03:00
|
|
|
(mercurial\.\w+\.mpatch\.)?mpatchError: patch cannot be decoded (re)
|