revlog: attempt to gracefully handle some interleaved damage
authorMatt Mackall <mpm@selenic.com>
Thu, 15 Mar 2007 18:38:46 -0500
changeset 4222 90bb1ab53a85
parent 4217 3be4785f8994
child 4223 2216535f07d7
revlog: attempt to gracefully handle some interleaved damage
mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -425,10 +425,13 @@ class revlog(object):
                 self.nodemap[e[-1]] = n
                 n += 1
                 if inline:
+                    if e[1] < 0:
+                        break
                     off += e[1]
                     if off > l:
                         # some things don't seek well, just read it
                         fp.read(off - l)
+                        break
             if not st:
                 break