classify: crash on classify filter pcap del command 50/30850/1
authorSteven Luong <sluong@cisco.com>
Wed, 20 Jan 2021 07:09:51 +0000 (23:09 -0800)
committerSteven Luong <sluong@cisco.com>
Wed, 20 Jan 2021 07:14:42 +0000 (23:14 -0800)
If classify pcap filter was never configured, typing the delete
command causes a crash. The reason is
cm->classify_table_index_by_sw_if_index not yet allocated.

The fix is to add a check before we access the vector.

Type: fix
Fixes: gerrit 28475

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ia33bd91fa82d8ffc4490d4069155980a6e233268

src/vnet/classify/vnet_classify.c

index 7e239cc..ca34eec 100644 (file)
@@ -1786,7 +1786,8 @@ classify_set_pcap_chain (vnet_classify_main_t * cm,
    * Put the table index where device drivers can find them.
    * This table index will be either a valid table or a ~0 to clear it.
    */
-  cm->classify_table_index_by_sw_if_index[sw_if_index] = table_index;
+  if (vec_len (cm->classify_table_index_by_sw_if_index) > sw_if_index)
+    cm->classify_table_index_by_sw_if_index[sw_if_index] = table_index;
   if (sw_if_index > 0)
     {
       vnet_hw_interface_t *hi;