mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Extend overflow detection in re_dfa_add_node.
This commit is contained in:
parent
54dd0ab31f
commit
2236464488
@ -1,5 +1,10 @@
|
||||
2010-01-22 Jim Meyering <jim@meyering.net>
|
||||
|
||||
[BZ #11184]
|
||||
* posix/regex_internal.c (re_dfa_add_node): Extend the overflow
|
||||
detection test. Patch by Paul Eggert.
|
||||
|
||||
[BZ #11183]
|
||||
* posix/regex_internal.c (re_string_realloc_buffers):
|
||||
Detect and handle internal overflow. Patch by Paul Eggert
|
||||
|
||||
|
@ -1411,8 +1411,11 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
|
||||
re_node_set *new_edests, *new_eclosures;
|
||||
re_token_t *new_nodes;
|
||||
|
||||
/* Avoid overflows. */
|
||||
if (BE (new_nodes_alloc < dfa->nodes_alloc, 0))
|
||||
/* Avoid overflows in realloc. */
|
||||
const size_t max_object_size = MAX (sizeof (re_token_t),
|
||||
MAX (sizeof (re_node_set),
|
||||
sizeof (int)));
|
||||
if (BE (SIZE_MAX / max_object_size < new_nodes_alloc, 0))
|
||||
return -1;
|
||||
|
||||
new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
|
||||
|
Loading…
Reference in New Issue
Block a user