summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2015-06-18 09:00:03 +0200
committerLoic Dachary <ldachary@redhat.com>2015-09-02 20:09:40 +0200
commitc4a150b87e1c122f204c141c7be415046e1882fe (patch)
treeb67cf849046ea0d5546054c9a7badaf6674db2eb
parent1e92f97e1e4942082764213c57c16e61f1f97903 (diff)
downloadgf-complete-c4a150b87e1c122f204c141c7be415046e1882fe.tar.gz
gf_w64.c: fix integer overflow
Fix for Coverity issue (from Ceph): CID 1193088 (#1 of 1): Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN) overflow_before_widen: Potentially overflowing expression 1 << g_s 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 1aef8694bc62a053e35cc1c74c67f1d15d8d1b6a)
-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 a7a3295..4776cf9 100644
--- a/src/gf_w64.c
+++ b/src/gf_w64.c
@@ -767,7 +767,7 @@ gf_w64_group_multiply(gf_t *gf, gf_val_64_t a, gf_val_64_t b)
gd = (struct gf_w64_group_data *) h->private;
gf_w64_group_set_shift_tables(gd->shift, b, h);
- mask = ((1 << g_s) - 1);
+ mask = (((uint64_t)1 << g_s) - 1);
top = 0;
bot = gd->shift[a&mask];
a >>= g_s;