When flow table is copied, the mask list from the old table
is not properly copied into the new table. The corrupted mask
list in the new table will lead to kernel crash. This patch
fixes this bug.

Bug #18110
Reported-by: Justin Pettit <jpet...@nicira.com>
Signed-off-by: Andy Zhou <az...@nicira.com>
---
 datapath/flow.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/datapath/flow.c b/datapath/flow.c
index 38b9502..5d97ce1 100644
--- a/datapath/flow.c
+++ b/datapath/flow.c
@@ -563,7 +563,7 @@ static void flow_table_copy_flows(struct flow_table *old, 
struct flow_table *new
                        __tbl_insert(new, flow);
        }
 
-       new->mask_list = old->mask_list;
+       list_replace(&old->mask_list, &new->mask_list);
        old->keep_flows = true;
 }
 
-- 
1.7.9.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to