From 2ed4f75388f99968be58097941a9704f6e42d701 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 26 Nov 2009 14:19:26 +1100 Subject: [PATCH] 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 Signed-off-by: NeilBrown --- Grow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Grow.c b/Grow.c index 7764bdb6..a654d4e8 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" -- 2.47.2