pcap api cleanup can cause crash if invalid sw_if_index
is provided. This fix is similar to https://gerrit.fd.io/r/c/vpp/+/41936
, which only fixed the invalid filename use-case.
Type: fix
Change-Id: I34ce178a4cb7fc92b4e4bb399a3fabd4efc85159
Signed-off-by: Hadi Rayan Al-Sandid <[email protected]>
vnet_pcap_dispatch_trace_args_t capture_args;
int rv = 0;
- VALIDATE_SW_IF_INDEX (mp);
-
unformat_init_cstring (&filename, (char *) mp->filename);
if (!unformat_user (&filename, unformat_vlib_tmpfile,
&capture_args.filename))
goto out;
}
+ VALIDATE_SW_IF_INDEX (mp);
+
capture_args.rx_enable = mp->capture_rx;
capture_args.tx_enable = mp->capture_tx;
capture_args.preallocate_data = mp->preallocate_data;
sw_if_index=0,
)
+ # Attempting to start a trace with an invalid sw_if_index should return an error
+ with self.vapi.assert_negative_api_retval():
+ self.vapi.pcap_trace_on(
+ capture_rx=True,
+ capture_tx=True,
+ filter=True,
+ max_packets=1000,
+ sw_if_index=0xFFFFFF,
+ )
+
if __name__ == "__main__":
unittest.main(testRunner=VppTestRunner)