Reported-by: Thomas Graf <tg...@noironetworks.com> Signed-off-by: Ben Pfaff <b...@nicira.com> --- tests/ovs-vsctl.at | 3 +++ utilities/ovs-vsctl.c | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at index 135f768..4ea47ef 100644 --- a/tests/ovs-vsctl.at +++ b/tests/ovs-vsctl.at @@ -851,6 +851,9 @@ AT_CHECK([RUN_OVS_VSCTL([set port br1 name br2])], AT_CHECK([RUN_OVS_VSCTL([remove bridge br1 name br1])], [1], [], [ovs-vsctl: cannot modify read-only column name in table Bridge ], [OVS_VSCTL_CLEANUP]) +AT_CHECK([RUN_OVS_VSCTL([remove bridge br1 flood-vlans true])], + [1], [], [ovs-vsctl: "true" is not a valid integer +], [OVS_VSCTL_CLEANUP]) AT_CHECK([RUN_OVS_VSCTL([clear bridge br1 name])], [1], [], [ovs-vsctl: cannot modify read-only column name in table Bridge ], [OVS_VSCTL_CLEANUP]) diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c index 37d8b3c..5cf12cf 100644 --- a/utilities/ovs-vsctl.c +++ b/utilities/ovs-vsctl.c @@ -3528,11 +3528,15 @@ cmd_remove(struct vsctl_context *ctx) rm_type.n_max = UINT_MAX; error = ovsdb_datum_from_string(&rm, &rm_type, ctx->argv[i], ctx->symtab); - if (error && ovsdb_type_is_map(&rm_type)) { - free(error); - rm_type.value.type = OVSDB_TYPE_VOID; - die_if_error(ovsdb_datum_from_string(&rm, &rm_type, - ctx->argv[i], ctx->symtab)); + if (error) { + if (ovsdb_type_is_map(&rm_type)) { + rm_type.value.type = OVSDB_TYPE_VOID; + free(error); + die_if_error(ovsdb_datum_from_string( + &rm, &rm_type, ctx->argv[i], ctx->symtab)); + } else { + vsctl_fatal("%s", error); + } } ovsdb_datum_subtract(&old, type, &rm, &rm_type); ovsdb_datum_destroy(&rm, &rm_type); -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev