X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-vsctl.c;h=9b4d9f7fc57581dfbfdbc7a121e0e68bb1fcb3a0;hb=58453fde168c5938afe445f8e22f8aa96d02083f;hp=916ac659af938fa3810721fcda28f3b409a7514e;hpb=25a7821a29c3bb0c376d0b2a9228be7c8b89d08d;p=sliver-openvswitch.git diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c index 916ac659a..9b4d9f7fc 100644 --- a/utilities/ovs-vsctl.c +++ b/utilities/ovs-vsctl.c @@ -2791,7 +2791,7 @@ do_vsctl(const char *args, struct vsctl_command *commands, size_t n_commands, } error = xstrdup(ovsdb_idl_txn_get_error(txn)); ovsdb_idl_txn_destroy(txn); - the_idl_txn = NULL; + txn = the_idl_txn = NULL; unused = ovsdb_symbol_table_find_unused(symtab); if (unused) { @@ -2882,8 +2882,10 @@ do_vsctl(const char *args, struct vsctl_command *commands, size_t n_commands, try_again: /* Our transaction needs to be rerun, or a prerequisite was not met. Free * resources and return so that the caller can try again. */ - ovsdb_idl_txn_abort(txn); - ovsdb_idl_txn_destroy(txn); + if (txn) { + ovsdb_idl_txn_abort(txn); + ovsdb_idl_txn_destroy(txn); + } ovsdb_symbol_table_destroy(symtab); for (c = commands; c < &commands[n_commands]; c++) { ds_destroy(&c->output);