diff options
author | Xavier Hernandez <jahernan@redhat.com> | 2017-12-13 17:27:42 +0100 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2017-12-22 16:19:53 +0000 |
commit | 41120aa8bab4ca4496bb37b8986434be404ae255 (patch) | |
tree | bf9dc2dc2ad7b426664a78676a99ddcad16d91f7 /xlators/cluster/ec/src/ec-common.c | |
parent | 3fd961d08588bd1ec31f8cfc72201dfa1a4e85d6 (diff) |
cluster/ec: Fix possible shift overflow
A coverity scan has revelaed a potential shift overflow while scanning
the bitmap of available subvolumes. The actual overflow cannot happen,
but I've changed to test used to control the limit to make it explicit.
Change-Id: Ieb55f010bbca68a1d86a93e47822f7c709a26e83
BUG: 789278
Signed-off-by: Xavier Hernandez <jahernan@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec-common.c')
-rw-r--r-- | xlators/cluster/ec/src/ec-common.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/xlators/cluster/ec/src/ec-common.c b/xlators/cluster/ec/src/ec-common.c index eea1e7c7a36..b7088e54724 100644 --- a/xlators/cluster/ec/src/ec-common.c +++ b/xlators/cluster/ec/src/ec-common.c @@ -568,7 +568,7 @@ void ec_dispatch_next(ec_fop_data_t * fop, uint32_t idx) LOCK(&fop->lock); i = ec_child_next(ec, fop, idx); - if (i < EC_METHOD_MAX_NODES) { + if (i < EC_MAX_NODES) { idx = i; fop->remaining ^= 1ULL << idx; @@ -581,7 +581,7 @@ void ec_dispatch_next(ec_fop_data_t * fop, uint32_t idx) UNLOCK(&fop->lock); - if (i < EC_METHOD_MAX_NODES) + if (i < EC_MAX_NODES) { fop->wind(ec, fop, idx); } @@ -708,7 +708,7 @@ void ec_dispatch_min(ec_fop_data_t * fop) while (count-- > 0) { idx = ec_child_next(ec, fop, idx + 1); - if (idx < EC_METHOD_MAX_NODES) + if (idx < EC_MAX_NODES) mask |= 1ULL << idx; } |