Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:hmzhao:branches:openSUSE:Factory
mdadm
0008-Grow-avoid-overflow-in-compute_backup_bloc...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0008-Grow-avoid-overflow-in-compute_backup_blocks.patch of Package mdadm
From 085df42259cba7863cd6ebe5cd0d8492ac5b869e Mon Sep 17 00:00:00 2001 From: NeilBrown <neilb@suse.com> Date: Thu, 6 Dec 2018 10:35:41 +1100 Subject: [PATCH] Grow: avoid overflow in compute_backup_blocks() Git-commit: 085df42259cba7863cd6ebe5cd0d8492ac5b869e Patch-mainline: mdadm-4.1+ References: jsc#SLE-10078, jsc#SLE-9348 With a chunk size of 16Meg and data drive count of 8, this calculate can easily overflow the 'int' type that is used for the multiplications. So force it to use "long" instead. Reported-and-tested-by: Ed Spiridonov <edo.rus@gmail.com> Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com> Signed-off-by: Coly Li <colyli@suse.de> --- Grow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Grow.c b/Grow.c index 4436a4d6bd4c..76f82c075e38 100644 --- a/Grow.c +++ b/Grow.c @@ -1196,7 +1196,8 @@ unsigned long compute_backup_blocks(int nchunk, int ochunk, /* Find GCD */ a = GCD(a, b); /* LCM == product / GCD */ - blocks = (ochunk/512) * (nchunk/512) * odata * ndata / a; + blocks = (unsigned long)(ochunk/512) * (unsigned long)(nchunk/512) * + odata * ndata / a; return blocks; } -- 2.14.0.rc0.dirty
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor