summaryrefslogtreecommitdiffstats
path: root/src/vnet/fib/fib_table.c
diff options
context:
space:
mode:
authorNeale Ranns <neale.ranns@cisco.com>2018-09-10 19:14:07 -0700
committerDamjan Marion <dmarion@me.com>2018-09-25 19:47:53 +0000
commit6fff24aaf84a4349faf04dc39bd1889f42ad4609 (patch)
tree7ac8634d5ca4583687ec6fc2d93b859f0de35089 /src/vnet/fib/fib_table.c
parentb474380f82b75d9640f9bf6ee78c891a6794dbfb (diff)
FIB: recusrive paths must lock the table to prevent its deletion
Change-Id: I958bf057be751dc7b3a0d93080021b3addc405b7 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Diffstat (limited to 'src/vnet/fib/fib_table.c')
-rw-r--r--src/vnet/fib/fib_table.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/fib/fib_table.c b/src/vnet/fib/fib_table.c
index d8e8d63b9ae..47f2011b7aa 100644
--- a/src/vnet/fib/fib_table.c
+++ b/src/vnet/fib/fib_table.c
@@ -1269,6 +1269,9 @@ fib_table_lock (u32 fib_index,
fib_table_t *fib_table;
fib_table = fib_table_get(fib_index, proto);
+
+ ASSERT(fib_table->ft_locks[source] < (0xffff - 1));
+
fib_table->ft_locks[source]++;
fib_table->ft_locks[FIB_TABLE_TOTAL_LOCKS]++;
}