diff options
author | Heikki Linnakangas | 2013-04-04 16:04:57 +0000 |
---|---|---|
committer | Heikki Linnakangas | 2013-04-04 16:48:11 +0000 |
commit | bf2b0a147857f63daa2e5c17eed0169861371af8 (patch) | |
tree | c075c53dbb17fddcec93e53c1bd097e5e26af4ff /src/include/regex | |
parent | d7d5832012ae5174707643af1a450d26d3350719 (diff) |
Fix crash on compiling a regular expression with more than 32k colors.
Throw an error instead.
Backpatch to all supported branches.
Diffstat (limited to 'src/include/regex')
-rw-r--r-- | src/include/regex/regerrs.h | 4 | ||||
-rw-r--r-- | src/include/regex/regex.h | 1 | ||||
-rw-r--r-- | src/include/regex/regguts.h | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/src/include/regex/regerrs.h b/src/include/regex/regerrs.h index a761371e5d..f02711ee17 100644 --- a/src/include/regex/regerrs.h +++ b/src/include/regex/regerrs.h @@ -77,3 +77,7 @@ { REG_ETOOBIG, "REG_ETOOBIG", "nfa has too many states" }, + +{ + REG_ECOLORS, "REG_ECOLORS", "too many colors" +}, diff --git a/src/include/regex/regex.h b/src/include/regex/regex.h index 616c2c6450..3e87dff17b 100644 --- a/src/include/regex/regex.h +++ b/src/include/regex/regex.h @@ -153,6 +153,7 @@ typedef struct #define REG_MIXED 17 /* character widths of regex and string differ */ #define REG_BADOPT 18 /* invalid embedded option */ #define REG_ETOOBIG 19 /* nfa has too many states */ +#define REG_ECOLORS 20 /* too many colors */ /* two specials for debugging and testing */ #define REG_ATOI 101 /* convert error-code name to number */ #define REG_ITOA 102 /* convert error-code number to name */ diff --git a/src/include/regex/regguts.h b/src/include/regex/regguts.h index e1e406f4ea..4e04abfa6f 100644 --- a/src/include/regex/regguts.h +++ b/src/include/regex/regguts.h @@ -148,6 +148,7 @@ typedef short color; /* colors of characters */ typedef int pcolor; /* what color promotes to */ +#define MAX_COLOR 32767 /* max color (must fit in 'color' datatype) */ #define COLORLESS (-1) /* impossible color */ #define WHITE 0 /* default color, parent of all others */ |