ofp-parse: Properly report error for invalid group ID.
authorBen Pfaff <blp@nicira.com>
Thu, 16 Apr 2015 20:56:46 +0000 (13:56 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 22 Apr 2015 03:04:30 +0000 (20:04 -0700)
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 <kevlo@FreeBSD.org>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Andy Zhou <azhou@nicira.com>
lib/ofp-parse.c
tests/ofproto.at

index 83f06f3..ffb17fa 100644 (file)
@@ -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;
                 }
index 3d15fea..f4e5321 100644 (file)
@@ -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