fix the use of uninitialized value in regcomp

the num_submatches field of some ast nodes was not initialized in
tre_add_tag_{left,right}, but was accessed later.

this was a benign bug since the uninitialized values were never used
(these values are created during tre_add_tags and copied around during
tre_expand_ast where they are also used in computations, but nothing
in the final tnfa depends on them).
This commit is contained in:
Szabolcs Nagy 2016-05-21 15:21:38 +02:00 committed by Rich Felker
parent 63e3a1661f
commit 51eeb6ebc9
1 changed files with 2 additions and 0 deletions

View File

@ -1106,6 +1106,7 @@ tre_add_tag_left(tre_mem_t mem, tre_ast_node_t *node, int tag_id)
c->right->firstpos = NULL; c->right->firstpos = NULL;
c->right->lastpos = NULL; c->right->lastpos = NULL;
c->right->num_tags = 0; c->right->num_tags = 0;
c->right->num_submatches = 0;
node->obj = c; node->obj = c;
node->type = CATENATION; node->type = CATENATION;
return REG_OK; return REG_OK;
@ -1136,6 +1137,7 @@ tre_add_tag_right(tre_mem_t mem, tre_ast_node_t *node, int tag_id)
c->left->firstpos = NULL; c->left->firstpos = NULL;
c->left->lastpos = NULL; c->left->lastpos = NULL;
c->left->num_tags = 0; c->left->num_tags = 0;
c->left->num_submatches = 0;
node->obj = c; node->obj = c;
node->type = CATENATION; node->type = CATENATION;
return REG_OK; return REG_OK;