The inner 'error' shadowed an outer one, so that the error, when set, was never returned to the caller.
Found by LLVM scan-build. Reported-by: Kevin Lo <[email protected]> Signed-off-by: Ben Pfaff <[email protected]> --- lib/ofp-parse.c | 2 +- tests/ofproto.at | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 8fce546..4915dde 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -1356,7 +1356,7 @@ parse_ofp_group_mod_str__(struct ofputil_group_mod *gm, uint16_t command, if(!strcmp(value, "all")) { gm->group_id = OFPG_ALL; } else { - char *error = str_to_u32(value, &gm->group_id); + error = str_to_u32(value, &gm->group_id); if (error) { goto out; } diff --git a/tests/ofproto.at b/tests/ofproto.at index 5ae3139..0a54dd9 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at @@ -313,6 +313,11 @@ AT_CHECK([ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0], [0], [stdout]) AT_CHECK([STRIP_XIDS stdout], [0], [dnl OFPST_GROUP_DESC reply (OF1.1): ]) + +# Negative test. +AT_CHECK([ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=0xfffffff0], + [1], [], [ovs-ofctl: invalid group id 4294967280 +]) OVS_VSWITCHD_STOP AT_CLEANUP -- 2.1.3 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
