@@ -1727,26 +1727,23 @@ dpctl_flush_conntrack(int argc, const char *argv[],
/* Report error if there are more than one unparsed argument. */
if (args > 1) {
- ds_put_cstr(&ds, "invalid arguments");
error = EINVAL;
- goto error;
+ dpctl_error(dpctl_p, error, "invalid arguments: %s", ds_cstr(&ds));
+ goto out;
}
error = opt_dpif_open(argc, argv, dpctl_p, 4, &dpif);
if (error) {
- return error;
+ goto out;
}
error = ct_dpif_flush(dpif, pzone, ptuple);
- if (!error) {
- dpif_close(dpif);
- return 0;
- } else {
- ds_put_cstr(&ds, "failed to flush conntrack");
+ if (error) {
+ dpctl_error(dpctl_p, error, "failed to flush conntrack: %s",
+ ds_cstr(&ds));
}
-error:
- dpctl_error(dpctl_p, error, "%s", ds_cstr(&ds));
+out:
ds_destroy(&ds);
dpif_close(dpif);
return error;
Direct leak of 36 byte(s) in 1 object(s) allocated from: #0 0x527d90 in __interceptor_realloc.part.0 asan_malloc_linux.cpp.o #1 0xc5f9fc in xrealloc__ /workspace/ovs/lib/util.c:147:9 #2 0xc5f9fc in xrealloc /workspace/ovs/lib/util.c:179:12 #3 0x86845d in ds_reserve /workspace/ovs/lib/dynamic-string.c:63:22 #4 0x86954a in ds_put_format_valist /workspace/ovs/lib/dynamic-string.c:164:9 #5 0x869202 in ds_put_format /workspace/ovs/lib/dynamic-string.c:142:5 #6 0x7dc664 in ct_dpif_parse_tuple /workspace/ovs/lib/ct-dpif.c #7 0xebb089 in dpctl_flush_conntrack /workspace/ovs/lib/dpctl.c:1717:17 #8 0xeb4eb2 in dpctl_unixctl_handler /workspace/ovs/lib/dpctl.c:3035:17 #9 0xc5d4f8 in process_command /workspace/ovs/lib/unixctl.c:310:13 #10 0xc5d4f8 in run_connection /workspace/ovs/lib/unixctl.c:344:17 #11 0xc5d4f8 in unixctl_server_run /workspace/ovs/lib/unixctl.c:395:21 #12 0x5a643f in main /workspace/ovs/vswitchd/ovs-vswitchd.c:130:9 Signed-off-by: Ales Musil <amusil@redhat.com> --- lib/dpctl.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-)