From: Tom Goff Date: Tue, 1 Dec 2009 18:12:38 +0000 (+0300) Subject: ospf6d: fix LSA locking in ospf6_new_ls_id() X-Git-Tag: frr-2.0-rc1~2199 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=16c1c4872b29bb22c0ff77bd1ef1018c63ca25fa;p=mirror%2Ffrr.git 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. --- diff --git a/ospf6d/ospf6_lsdb.c b/ospf6d/ospf6_lsdb.c index b839d16eea..ea387e3d05 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++; }