Partly this is to help the reader (and maybe help GCC); partly this is to pacify Coverity. * lib/regex_internal.h: Include verify.h. * lib/regexec.c (group_nodes_into_DFAstates): Tell the compiler that ndests cannot exceed SBC_MAX. * modules/regex (Depends-on): Add ‘verify’. --- ChangeLog | 8 ++++++++ lib/regex_internal.h | 1 + lib/regexec.c | 1 + modules/regex | 1 + 4 files changed, 11 insertions(+)
diff --git a/ChangeLog b/ChangeLog index 4f96c8cbf..360973ba4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2019-10-09 Paul Eggert <[email protected]> + regex: tell compiler there’s at most 256 arcs out + Partly this is to help the reader (and maybe help GCC); + partly this is to pacify Coverity. + * lib/regex_internal.h: Include verify.h. + * lib/regexec.c (group_nodes_into_DFAstates): + Tell the compiler that ndests cannot exceed SBC_MAX. + * modules/regex (Depends-on): Add ‘verify’. + regex: simplify by assuming C99 * config/srclist.txt: Comment out regex_internal.h and regexec.c temporarily. diff --git a/lib/regex_internal.h b/lib/regex_internal.h index 9c0e1f1d1..b6eeba32d 100644 --- a/lib/regex_internal.h +++ b/lib/regex_internal.h @@ -34,6 +34,7 @@ #include <stdint.h> #include <intprops.h> +#include <verify.h> #ifdef _LIBC # include <libc-lock.h> diff --git a/lib/regexec.c b/lib/regexec.c index f7d2b5b20..0d32e0139 100644 --- a/lib/regexec.c +++ b/lib/regexec.c @@ -3684,6 +3684,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, bitset_empty (accepts); } } + assume (ndests <= SBC_MAX); return ndests; error_return: for (j = 0; j < ndests; ++j) diff --git a/modules/regex b/modules/regex index 7f50916ce..dbfd37982 100644 --- a/modules/regex +++ b/modules/regex @@ -30,6 +30,7 @@ mbsinit [test $ac_use_included_regex = yes] nl_langinfo [test $ac_use_included_regex = yes] stdbool [test $ac_use_included_regex = yes] stdint [test $ac_use_included_regex = yes] +verify [test $ac_use_included_regex = yes] wchar [test $ac_use_included_regex = yes] wcrtomb [test $ac_use_included_regex = yes] wctype-h [test $ac_use_included_regex = yes] -- 2.21.0
