Mercurial > hg
changeset 45787:225e513c444e
tags: add safety check for len(record) while reading hgtagsfnodescache
I am trying to fix a breakage where somehow we end up getting a node of 12
length from `getfnode()`. Understanding the hgtagsfnodescache code, it seems
highly unlikely that it can happen unless one of `mctx.readfast().get()` or
`ctx.filenode()` is returning a node of 12 length.
For safety, I think it's better to add a check to make sure that record which we
are parsing is of same length we are expecting otherwise we consider that as
invalid record.
Differential Revision: https://phab.mercurial-scm.org/D9169
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Wed, 07 Oct 2020 14:26:47 +0530 |
parents | 37c65704869d |
children | a5206e71c536 |
files | mercurial/tags.py |
diffstat | 1 files changed, 1 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/tags.py Wed Oct 14 17:52:18 2020 +0200 +++ b/mercurial/tags.py Wed Oct 07 14:26:47 2020 +0530 @@ -759,7 +759,7 @@ properprefix = node[0:4] # Validate and return existing entry. - if record != _fnodesmissingrec: + if record != _fnodesmissingrec and len(record) == _fnodesrecsize: fileprefix = record[0:4] if fileprefix == properprefix: