From 48ca67bea699cef35e2fdf7f25a24db60139a2ea Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Sun, 22 Jun 2008 11:39:42 +0000 Subject: [PATCH] Partially revert previous commit. DeleteLink() does not deletes permanent links so we should be aware of it and try to delete every link only once or we will loop forever. --- sys/netinet/libalias/alias_db.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/netinet/libalias/alias_db.c b/sys/netinet/libalias/alias_db.c index a9e96d1839d..c9942b82af0 100644 --- a/sys/netinet/libalias/alias_db.c +++ b/sys/netinet/libalias/alias_db.c @@ -819,8 +819,12 @@ CleanupAliasData(struct libalias *la) LIBALIAS_LOCK_ASSERT(la); for (i = 0; i < LINK_TABLE_OUT_SIZE; i++) { - while ((lnk = LIST_FIRST(&la->linkTableOut[i])) != NULL) + lnk = LIST_FIRST(&la->linkTableOut[i]); + while (lnk != NULL) { + struct alias_link *link_next = LIST_NEXT(lnk, list_out); DeleteLink(lnk); + lnk = link_next; + } } la->cleanupIndex = 0;