[ovs-dev] [PATCH] ovs-vsctl: Prevent double-free when retrying a transaction
Justin Pettit
jpettit at nicira.com
Sat Oct 23 00:54:34 UTC 2010
And ship it I did. Thanks.
--Justin
On Oct 22, 2010, at 5:51 PM, Ethan Jackson wrote:
> Ship it
>
> On Fri, Oct 22, 2010 at 17:49, Justin Pettit <jpettit at nicira.com> wrote:
>> ---
>> utilities/ovs-vsctl.c | 8 +++++---
>> 1 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c
>> index 1585fae..c4f628e 100644
>> --- a/utilities/ovs-vsctl.c
>> +++ b/utilities/ovs-vsctl.c
>> @@ -2838,7 +2838,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) {
>> @@ -2927,8 +2927,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);
>> --
>> 1.7.1
>>
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
>>
More information about the dev
mailing list