Fix segfaults when parsing bdiff hunks in mpatch.decode() and .patchedsize()
- fix off by 11 when checking if there are more hunks (found by Maris Fogels)
- bail out if start is greater than end
- check if new hunk starts after start/end/len block of current hunk as
the pointer can wrap around on very large values, reproducible with
import mpatch; mpatch.patchedsize(12, 'x'*12)
"""
node.py - basic nodeid manipulation for mercurial
Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
This software may be used and distributed according to the terms
of the GNU General Public License, incorporated herein by reference.
"""
from demandload import demandload
demandload(globals(), "binascii")
nullrev = -1
nullid = "\0" * 20
def hex(node):
return binascii.hexlify(node)
def bin(node):
return binascii.unhexlify(node)
def short(node):
return hex(node[:6])