api: fix bug in pcap capture api
pcap api cleanup can cause crash in certain scenarios e.g.missing/invalid 'filename' parameter. Type: fix Change-Id: I92417765960de84e30ed7cb945d40c50d722fb6c Signed-off-by: Hadi Rayan Al-Sandid <halsandi@cisco.com>
This commit is contained in:

committed by
Beno�t Ganne

parent
1beb88ed3b
commit
7d469364c5
@ -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_init_cstring (&drop_err_name, (char *) mp->error);
|
||||||
unformat_user (&drop_err_name, unformat_vlib_error, vlib_get_main (),
|
unformat_user (&drop_err_name, unformat_vlib_error, vlib_get_main (),
|
||||||
&capture_args.drop_err);
|
&capture_args.drop_err);
|
||||||
|
unformat_free (&drop_err_name);
|
||||||
|
|
||||||
rv = vnet_pcap_dispatch_trace_configure (&capture_args);
|
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:
|
out:
|
||||||
unformat_free (&filename);
|
unformat_free (&filename);
|
||||||
unformat_free (&drop_err_name);
|
|
||||||
|
|
||||||
REPLY_MACRO (VL_API_PCAP_TRACE_ON_REPLY);
|
REPLY_MACRO (VL_API_PCAP_TRACE_ON_REPLY);
|
||||||
}
|
}
|
||||||
|
@ -163,6 +163,16 @@ class TestPcap(VppTestCase):
|
|||||||
os.remove("/tmp/trace_any_filter.pcap")
|
os.remove("/tmp/trace_any_filter.pcap")
|
||||||
os.remove("/tmp/trace_drop_err.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__":
|
if __name__ == "__main__":
|
||||||
unittest.main(testRunner=VppTestRunner)
|
unittest.main(testRunner=VppTestRunner)
|
||||||
|
Reference in New Issue
Block a user