From c465f75fef7adcab0ac22a30be277a3e6ff9d857 Mon Sep 17 00:00:00 2001 From: Pravin B Shelar Date: Sat, 12 Sep 2015 10:40:56 -0700 Subject: [PATCH] tnl-port: Fix list iteration. Fixes Segmentation fault in tnl_port_map_run () at lib/tnl-ports.c:403 Reported-by: Jesse Gross Signed-off-by: Pravin B Shelar Acked-by: Jesse Gross --- lib/tnl-ports.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/tnl-ports.c b/lib/tnl-ports.c index f510f1eb7..59d5354a9 100644 --- a/lib/tnl-ports.c +++ b/lib/tnl-ports.c @@ -357,11 +357,11 @@ delete_ipdev(struct ip_device *ip_dev) void tnl_port_map_insert_ipdev(const char dev_name[]) { - struct ip_device *ip_dev; + struct ip_device *ip_dev, *next; ovs_mutex_lock(&mutex); - LIST_FOR_EACH(ip_dev, node, &addr_list) { + LIST_FOR_EACH_SAFE(ip_dev, next, node, &addr_list) { if (!strcmp(netdev_get_name(ip_dev->dev), dev_name)) { if (ip_dev->change_seq == netdev_get_change_seq(ip_dev->dev)) { goto out; @@ -394,10 +394,10 @@ tnl_port_map_delete_ipdev(const char dev_name[]) void tnl_port_map_run(void) { - struct ip_device *ip_dev; + struct ip_device *ip_dev, *next; ovs_mutex_lock(&mutex); - LIST_FOR_EACH(ip_dev, node, &addr_list) { + LIST_FOR_EACH_SAFE(ip_dev, next, node, &addr_list) { char dev_name[IFNAMSIZ]; if (ip_dev->change_seq == netdev_get_change_seq(ip_dev->dev)) { -- 2.20.1