+ lf->decoder_info = nnode;
+
+ for (i = 0; nnode->regex->sub_strings[i]; i++) {
+ if (i >= Config.decoder_order_size) {
+ ErrorExit("%s: ERROR: Regex has too many groups.", ARGV0);
+ }
+
+ if (nnode->order[i])
+ nnode->order[i](lf, nnode->regex->sub_strings[i], i);
+ else
+ /* We do not free any memory used above */
+ os_free(nnode->regex->sub_strings[i]);
+
+ nnode->regex->sub_strings[i] = NULL;
+ }
+
+ /* If we have a next regex, try getting it */
+ if (nnode->get_next) {
+ child_node = child_node->next;
+ nnode = child_node->osdecoder;
+ continue;
+ }