We were reallocating memory properly but not updating the "n_actions"
member, which sometimes led to reading past the end of a block.
This problem possibly caused segfaults, since the OpenFlow->ODP action
translation code assumes that OpenFlow actions are prevalidated, and
random memory is not necessarily valid OpenFlow actions :-)
Spotted by Valgrind.
update_stats(rule, &odp_flow.stats);
}
rule = xrealloc(rule, rule_size(n_actions));
+ rule->n_actions = n_actions;
memcpy(rule->actions, ofm->actions, n_actions * sizeof *rule->actions);
cls_rule_moved(&p->cls, &old_rule->cr, &rule->cr);
}