summaryrefslogtreecommitdiff
path: root/ospf6d
diff options
context:
space:
mode:
authorTom Goff <thomas.goff@boeing.com>2009-12-01 21:12:38 +0300
committerDenis Ovsienko <infrastation@yandex.ru>2009-12-01 21:12:38 +0300
commit16c1c4872b29bb22c0ff77bd1ef1018c63ca25fa (patch)
tree06813f6d1b703649757f3eedf829e7afddfe5c42 /ospf6d
parent9964fcfc2282c8f3468b3b7355c5dea3089f0f14 (diff)
ospf6d: fix LSA locking in ospf6_new_ls_id()
* ospf6_lsdb.c: (ospf6_new_ls_id) Unlock the current LSA when breaking out of the ospf6_lsdb_*_head() / ospf6_lsdb_*_next() loop early. No explicit unlocking is needed when all LSAs are looped through because ospf6_lsdb_*_next() manages everything in that case.
Diffstat (limited to 'ospf6d')
-rw-r--r--ospf6d/ospf6_lsdb.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ospf6d/ospf6_lsdb.c b/ospf6d/ospf6_lsdb.c
index b839d16e..ea387e3d 100644
--- a/ospf6d/ospf6_lsdb.c
+++ b/ospf6d/ospf6_lsdb.c
@@ -553,7 +553,10 @@ ospf6_new_ls_id (u_int16_t type, u_int32_t adv_router,
if (ntohl (lsa->header->id) < id)
continue;
if (ntohl (lsa->header->id) > id)
+ {
+ ospf6_lsa_unlock (lsa);
break;
+ }
id++;
}