bundle: Fix returned error code in one bundle_check() corner case.
authorBen Pfaff <blp@nicira.com>
Tue, 27 Dec 2011 23:44:41 +0000 (15:44 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 28 Dec 2011 01:03:07 +0000 (17:03 -0800)
In C, the || operator yields 0 or 1, not (as in some other languages) the
value of its first nonzero operand.

Found by inspection.

Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/bundle.c

index 227d359..e6e39a0 100644 (file)
@@ -144,8 +144,8 @@ bundle_check(const struct nx_action_bundle *nab, int max_ports,
         error = ofp_mkerr(OFPET_BAD_ACTION, OFPBAC_BAD_ARGUMENT);
     }
 
-    if (subtype == NXAST_BUNDLE_LOAD) {
-        error = nxm_dst_check(nab->dst, nab->ofs_nbits, 16, flow) || error;
+    if (subtype == NXAST_BUNDLE_LOAD && !error) {
+        error = nxm_dst_check(nab->dst, nab->ofs_nbits, 16, flow);
     }
 
     if (slaves_size < n_slaves * sizeof(ovs_be16)) {