Mercurial > hg-stable
changeset 40812:69bd3176da7c
match: raise an Abort error instead of OverflowError
This case of OverflowError (one single pattern being too large) has never been
properly caught in the past.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Thu, 22 Nov 2018 17:41:10 +0100 |
parents | 3c842749debc |
children | e8c992d56465 |
files | mercurial/match.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/match.py Thu Nov 22 21:02:02 2018 +0100 +++ b/mercurial/match.py Thu Nov 22 17:41:10 2018 +0100 @@ -1201,7 +1201,7 @@ ... ], '$') Traceback (most recent call last): ... - OverflowError + Abort: matcher pattern is too long (20009 bytes) """ try: allgroups = [] @@ -1213,7 +1213,8 @@ for idx, r in enumerate(regexps): piecesize = len(r) if (piecesize + 4) > MAX_RE_SIZE: - raise OverflowError + msg = _("matcher pattern is too long (%d bytes)") % piecesize + raise error.Abort(msg) elif (groupsize + 1 + piecesize) > MAX_RE_SIZE: group = regexps[startidx:idx] allgroups.append(_joinregexes(group))