NeilBrown: Grow: avoid truncation error when checking size of array.

Martin F. Krafft madduck at alioth.debian.org
Wed Jan 27 02:03:43 UTC 2010


Module: mdadm
Branch: upstream
Commit: 2ed4f75388f99968be58097941a9704f6e42d701
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=2ed4f75388f99968be58097941a9704f6e42d701

Author: NeilBrown <neilb at suse.de>
Date:   Thu Nov 26 14:19:26 2009 +1100

Grow: avoid truncation error when checking size of array.

array.size is only 32bit so it is not safe to multiply it
up before casting to (long long).
Actually, we shouldn't be using array.size here at all, but that
will get fixed in a subsequent patch.

Reported-by: Andrew Burgess <aab at cichlid.com>
Signed-off-by: NeilBrown <neilb at suse.de>

---

 Grow.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Grow.c b/Grow.c
index 7764bdb..a654d4e 100644
--- a/Grow.c
+++ b/Grow.c
@@ -891,7 +891,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
 		}
 
 		/* Check that we can hold all the data */
-		size = ndata * array.size;
+		size = ndata * (long long)array.size;
 		get_dev_size(fd, NULL, &array_size);
 		if (size < (array_size/1024)) {
 			fprintf(stderr, Name ": this change will reduce the size of the array.\n"




More information about the pkg-mdadm-commits mailing list