BFD: drop rpc call if packet doesn't match session

In a very unlikely scenario, during which a session is removed
and replaced with a different session sharing the same session
index, while a packet is in-flight during RPC call, drop that packet.

Change-Id: If1c4a77fc2ab460bae2435db066a133185b98747
Signed-off-by: Klement Sekera <ksekera@cisco.com>
This commit is contained in:
Klement Sekera
2017-03-03 08:51:08 +01:00
committed by Damjan Marion
parent 0491ac9aed
commit 0e2e0dfe8b

View File

@ -1555,7 +1555,7 @@ void
bfd_consume_pkt (bfd_main_t * bm, const bfd_pkt_t * pkt, u32 bs_idx)
{
bfd_session_t *bs = bfd_find_session_by_idx (bm, bs_idx);
if (!bs)
if (!bs || (pkt->your_disc && pkt->your_disc != bs->local_discr))
{
return;
}