[ovs-dev] [PATCH] bundle: Fix returned error code in one bundle_check() corner case.

Ben Pfaff blp at nicira.com
Tue Dec 27 23:46:01 UTC 2011


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 at nicira.com>
---
 lib/bundle.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/bundle.c b/lib/bundle.c
index af1be63..5db97d3 100644
--- a/lib/bundle.c
+++ b/lib/bundle.c
@@ -152,8 +152,8 @@ bundle_check(const struct nx_action_bundle *nab, int max_ports,
             VLOG_WARN_RL(&rl, "bundle_load action requires at least 16 bit "
                          "destination.");
             error = ofp_mkerr(OFPET_BAD_ACTION, OFPBAC_BAD_ARGUMENT);
-        } else {
-            error = nxm_dst_check(nab->dst, ofs, n_bits, flow) || error;
+        } else if (!error) {
+            error = nxm_dst_check(nab->dst, ofs, n_bits, flow);
         }
     }
 
-- 
1.7.2.5




More information about the dev mailing list