aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ip
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2019-07-18 17:34:28 +0200
committerAndrew Yourtchenko <ayourtch@gmail.com>2019-09-30 15:34:52 +0000
commit59ffe5ea1cf585fa9ace7e527083aee4abe7aab7 (patch)
treefb8c2601d24729c3428a273561c09ab50aa1d576 /src/vnet/ip
parent804a95cf8113ee2b226363eab71e98dbee0b6820 (diff)
fib: do not dump no-longer valid adjacencies
In some cases, we can refer to no-longer adjacencies (eg. in traces). Do not dump them in this case as they are probably incorrect (memory can be reused). Type: fix Change-Id: Ib653ba066bb6595ec6ec37d313a3124bce0eeed3 Signed-off-by: Benoît Ganne <bganne@cisco.com> (cherry picked from commit 138c37af5291e2045075052a4db036be03be4a85)
Diffstat (limited to 'src/vnet/ip')
-rw-r--r--src/vnet/ip/lookup.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c
index 60cedac57d8..43d61d39ee0 100644
--- a/src/vnet/ip/lookup.c
+++ b/src/vnet/ip/lookup.c
@@ -261,7 +261,12 @@ format_ip_adjacency_packet_data (u8 * s, va_list * args)
u32 adj_index = va_arg (*args, u32);
u8 *packet_data = va_arg (*args, u8 *);
u32 n_packet_data_bytes = va_arg (*args, u32);
- ip_adjacency_t *adj = adj_get (adj_index);
+ ip_adjacency_t *adj;
+
+ if (!adj_is_valid (adj_index))
+ return format (s, "<invalid adjacency>");
+
+ adj = adj_get (adj_index);
switch (adj->lookup_next_index)
{