mirror of git://gcc.gnu.org/git/gcc.git
libiberty: Fix off-by-one when collecting range expression
Fixes this error during build of fixincludes:
In function ‘byte_regex_compile’,
inlined from ‘xregcomp’ at ../libiberty/../../libiberty/regex.c:7973:11:
../libiberty/../../libiberty/regex.c:3477:29: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
3477 | str[c1] = '\0';
| ^
../libiberty/../../libiberty/regex.c: In function ‘xregcomp’:
../libiberty/../../libiberty/regex.c:3454:35: note: at offset 128 into destination object ‘str’ of size 128
3454 | unsigned char str[128]; /* Should be large enough. */
| ^
* regex.c (regex_compile): Don't write beyond array bounds when
collecting range expression.
This commit is contained in:
parent
90fee97d52
commit
43717ee906
|
|
@ -3468,7 +3468,7 @@ PREFIX(regex_compile) (const char *ARG_PREFIX(pattern),
|
||||||
PATFETCH (c);
|
PATFETCH (c);
|
||||||
if ((c == '.' && *p == ']') || p == pend)
|
if ((c == '.' && *p == ']') || p == pend)
|
||||||
break;
|
break;
|
||||||
if (c1 < sizeof (str))
|
if (c1 < sizeof (str) - 1)
|
||||||
str[c1++] = c;
|
str[c1++] = c;
|
||||||
else
|
else
|
||||||
/* This is in any case an invalid class name. */
|
/* This is in any case an invalid class name. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue