fib: fix accessing empty dpo pool elements
[vpp.git] / src / vnet / dpo / lookup_dpo.c
index 617fb9e..daa2352 100644 (file)
@@ -788,10 +788,10 @@ lookup_dpo_ip6_inline (vlib_main_t * vm,
            }
 
            /* do src lookup */
-           lbi0 = ip6_fib_table_fwding_lookup(&ip6_main,
+           lbi0 = ip6_fib_table_fwding_lookup(
                                               fib_index0,
                                               input_addr0);
-           lbi1 = ip6_fib_table_fwding_lookup(&ip6_main,
+           lbi1 = ip6_fib_table_fwding_lookup(
                                               fib_index1,
                                               input_addr1);
            lb0 = load_balance_get(lbi0);
@@ -927,7 +927,7 @@ lookup_dpo_ip6_inline (vlib_main_t * vm,
            }
 
            /* do src lookup */
-           lbi0 = ip6_fib_table_fwding_lookup(&ip6_main,
+           lbi0 = ip6_fib_table_fwding_lookup(
                                               fib_index0,
                                               input_addr0);
            lb0 = load_balance_get(lbi0);
@@ -1467,7 +1467,10 @@ lookup_dpo_show (vlib_main_t * vm,
 
     if (INDEX_INVALID != lkdi)
     {
-        vlib_cli_output (vm, "%U", format_lookup_dpo, lkdi);
+       if (pool_is_free_index(lookup_dpo_pool, lkdi))
+               vlib_cli_output (vm, "no such index %d", lkdi);
+       else
+               vlib_cli_output (vm, "%U", format_lookup_dpo, lkdi);
     }
     else
     {