[prev in list] [next in list] [prev in thread] [next in thread] 

List:       quagga-dev
Subject:    [quagga-dev 7969] [PATCH] zebra: fix infinite loop when deleting an
From:       Roman Hoog Antink <rha () open ! ch>
Date:       2010-05-05 14:00:50
Message-ID: 4BE17A12.6050806 () open ! ch
[Download RAW message or body]

(This is a repost of [quagga-dev 7962] to meet the desired git diff format. 
And I hope, this time someone will respond.)

When deleting a VLAN interface after flushing its
addresses, zebra uses 100% CPU time and freezes.

 * interface.c: The while loop in line 407 that
   should clean up connected routes never hits one
   of the 2 lines "last = node;" and thus loops
   forever.

Signed-off-by: Roman Hoog Antink <rha@open.ch>
---
 zebra/interface.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/zebra/interface.c b/zebra/interface.c
index ba4cf25..03e7ff7 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -477,6 +477,10 @@ if_delete_update (struct interface *ifp)
 		}
 	    }
 #endif /* HAVE_IPV6 */
+	  else
+	    {
+	      last = node;
+	    }
 	}
     }
   zebra_interface_delete_update (ifp);
-- 
1.6.3.3
_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
http://lists.quagga.net/mailman/listinfo/quagga-dev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic