summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2015-06-18 08:58:20 +0200
committerLoic Dachary <ldachary@redhat.com>2015-09-02 20:09:40 +0200
commit1e92f97e1e4942082764213c57c16e61f1f97903 (patch)
treef554e49950911e520962a9242de8d89d6d9479d3
parent3dfca4f3106260e75019e064dfd077e21ba8199a (diff)
downloadgf-complete-1e92f97e1e4942082764213c57c16e61f1f97903.tar.gz
gf_w64.c: fix integer overflow
Fix for Coverity issue (from Ceph): CID 1193087 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN) overflow_before_widen: Potentially overflowing expression 1 << g_r with type int (32 bits, signed) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type uint64_t (64 bits, unsigned). Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de> (cherry picked from commit e127bb1fb9b1025094a0e0ce50d2e44c38c4e97f)
-rw-r--r--src/gf_w64.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gf_w64.c b/src/gf_w64.c
index 9bc7042..a7a3295 100644
--- a/src/gf_w64.c
+++ b/src/gf_w64.c
@@ -791,7 +791,7 @@ gf_w64_group_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b)
lshift = ((lshift-1) / g_r) * g_r;
rshift = 64 - lshift;
- mask = (1 << g_r) - 1;
+ mask = ((uint64_t)1 << g_r) - 1;
while (lshift >= 0) {
tp = gd->reduce[(top >> lshift) & mask];
top ^= (tp >> rshift);