secchan: Fix read-after-free error in OFPT_FLOW_MOD implementation.
authorBen Pfaff <blp@nicira.com>
Wed, 4 Mar 2009 22:53:07 +0000 (14:53 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 4 Mar 2009 22:53:07 +0000 (14:53 -0800)
Found via valgrind.

secchan/ofproto.c

index d019ad3a54bebd9998c21b3352b0b4fe7794f54c..6b03b1dd250e713081593516df539efeb86a0be1 100644 (file)
@@ -1924,6 +1924,9 @@ modify_flow(struct ofproto *p, const struct ofp_flow_mod *ofm,
         return 0;
     }
 
+    if (rule->cr.wc.wildcards) {
+        p->need_revalidate = true;
+    }
     if (command == OFPFC_DELETE) {
         if (!rule->cr.wc.wildcards) {
             struct odp_flow odp_flow;
@@ -1952,9 +1955,6 @@ modify_flow(struct ofproto *p, const struct ofp_flow_mod *ofm,
         cls_rule_moved(&p->cls, &old_rule->cr, &rule->cr);
     }
 
-    if (rule->cr.wc.wildcards) {
-        p->need_revalidate = true;
-    }
     return 0;
 }