regcomp.c: do not ignore internal return values
authorJim Meyering <meyering@redhat.com>
Tue, 19 Jan 2010 08:18:19 +0000 (09:18 +0100)
committerJim Meyering <meyering@redhat.com>
Thu, 28 Jan 2010 10:34:05 +0000 (11:34 +0100)
* lib/regcomp.c: Do not ignore internal return values.
This is from glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c,
but without its white-space changes and spelling fixes.

ChangeLog
lib/regcomp.c

index 193d27b..9434d38 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-01-28  Jim Meyering  <meyering@redhat.com>
 
+       regcomp.c: do not ignore internal return values
+       * lib/regcomp.c: Do not ignore internal return values.
+       This is from glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c,
+       but without its white-space changes and spelling fixes.
+
        regex_internal.h: define __attribute_warn_unused_result__
        * lib/regex_internal.h (__attribute_warn_unused_result__): Define.
 
index ebb696a..fb05da3 100644 (file)
@@ -1021,7 +1021,11 @@ create_initial_state (re_dfa_t *dfa)
            Idx dest_idx = dfa->edests[node_idx].elems[0];
            if (!re_node_set_contains (&init_nodes, dest_idx))
              {
-               re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx);
+               reg_errcode_t err = re_node_set_merge (&init_nodes,
+                                                      dfa->eclosures
+                                                      + dest_idx);
+               if (err != REG_NOERROR)
+                 return err;
                i = 0;
              }
          }
@@ -1446,7 +1450,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node)
     case OP_BACK_REF:
       dfa->nexts[idx] = node->next->node_idx;
       if (node->token.type == OP_BACK_REF)
-       re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
+       err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
       break;
 
     default:
@@ -1726,7 +1730,9 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
        else
          eclosure_elem = dfa->eclosures[edest];
        /* Merge the epsilon closure of `edest'.  */
-       re_node_set_merge (&eclosure, &eclosure_elem);
+       err = re_node_set_merge (&eclosure, &eclosure_elem);
+       if (BE (err != REG_NOERROR, 0))
+         return err;
        /* If the epsilon closure of `edest' is incomplete,
           the epsilon closure of this node is also incomplete.  */
        if (dfa->eclosures[edest].nelem == 0)