mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-04 16:45:24 +00:00
3825. [bug] Address sign extension bug in isc_regex_validate.
[RT #35758]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
3825. [bug] Address sign extension bug in isc_regex_validate.
|
||||||
|
[RT #35758]
|
||||||
|
|
||||||
3824. [bug] A collision between two flag values could cause
|
3824. [bug] A collision between two flag values could cause
|
||||||
problems with cache cleaning when SIT was enabled.
|
problems with cache cleaning when SIT was enabled.
|
||||||
[RT #35858]
|
[RT #35858]
|
||||||
|
@@ -220,7 +220,7 @@ isc_regex_validate(const char *c) {
|
|||||||
++c;
|
++c;
|
||||||
switch (*c) {
|
switch (*c) {
|
||||||
case '.': /* collating element */
|
case '.': /* collating element */
|
||||||
if (range) --range;
|
if (range != 0) --range;
|
||||||
++c;
|
++c;
|
||||||
state = parse_ce;
|
state = parse_ce;
|
||||||
seen_ce = ISC_FALSE;
|
seen_ce = ISC_FALSE;
|
||||||
@@ -255,11 +255,11 @@ isc_regex_validate(const char *c) {
|
|||||||
default:
|
default:
|
||||||
inside:
|
inside:
|
||||||
seen_char = ISC_TRUE;
|
seen_char = ISC_TRUE;
|
||||||
if (range == 2 && *c < range_start)
|
if (range == 2 && (*c & 0xff) < range_start)
|
||||||
FAIL("out of order range");
|
FAIL("out of order range");
|
||||||
if (range != 0)
|
if (range != 0)
|
||||||
--range;
|
--range;
|
||||||
range_start = *c;
|
range_start = *c & 0xff;
|
||||||
++c;
|
++c;
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user