diff --git a/src/vnet/interface_api.c b/src/vnet/interface_api.c index 69bf4b72ba4..65f3a02c86b 100644 --- a/src/vnet/interface_api.c +++ b/src/vnet/interface_api.c @@ -1653,6 +1653,7 @@ vl_api_pcap_trace_on_t_handler (vl_api_pcap_trace_on_t *mp) unformat_init_cstring (&drop_err_name, (char *) mp->error); unformat_user (&drop_err_name, unformat_vlib_error, vlib_get_main (), &capture_args.drop_err); + unformat_free (&drop_err_name); rv = vnet_pcap_dispatch_trace_configure (&capture_args); @@ -1660,7 +1661,6 @@ vl_api_pcap_trace_on_t_handler (vl_api_pcap_trace_on_t *mp) out: unformat_free (&filename); - unformat_free (&drop_err_name); REPLY_MACRO (VL_API_PCAP_TRACE_ON_REPLY); } diff --git a/test/test_pcap.py b/test/test_pcap.py index b73a601bcc8..1169dcccfc1 100644 --- a/test/test_pcap.py +++ b/test/test_pcap.py @@ -163,6 +163,16 @@ class TestPcap(VppTestCase): os.remove("/tmp/trace_any_filter.pcap") os.remove("/tmp/trace_drop_err.pcap") + # Attempting to start a trace with no filename 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=0, + ) + if __name__ == "__main__": unittest.main(testRunner=VppTestRunner)